我有一个PHP脚本通过GET返回json,代码如下
<?php
$output = //generate json data;
header('Content-type: application/json');
echo json_encode($output); ?>
我在本地主机上托管这个php,所以当我访问http://localhost/test.php时,我能够正确地看到json数据。
然后我有一个使用AngularJS的页面,如下面的
<h1>{{myWelcome}}</h1>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $http) {
$http({
method : "GET",
url : "http://localhost/test.php"
}).then(function mySucces(response) {
$scope.myWelcome = response.data;
alert("success");
}, function myError(response) {
$scope.myWelcome = response.statusText;
alert("fail");
});
});
我运行页面,UI中没有显示任何内容。我没有得到任何警报。这意味着它既不成功也不失败。如果我将URL切换为其他api。例如
url : "http://congress.api.sunlightfoundation.com/legislators?apikey=xxx"
我可以正确回复。这意味着我的js代码很好。所以我的问题是,为什么我无法从我的localhost php获得json响应。我的PHP有什么问题,或者是我的问题吗?
我尝试在stackoverflow中搜索,有些人建议这样做,但它没有帮助。
$http.get('http://localhost/angmysql/api.php').success(function(response) {
$scope.users = response.data;
});
感谢@jay的评论。看看控制台,就是这样。
XMLHttpRequest无法加载http://127.0.0.1/test.php。 No&#39; Access-Control-Allow-Origin&#39;标头出现在请求的资源上。起源&#39; http://127.0.0.1:8020&#39;因此不允许访问。