我的代码如下
$scope.LoadSearchResults = function () {
$scope.hotels = '';
$scope.allData = '';
var mydata = '';
$http({
url: 'myurl',
Authorization : 'code',
method: 'POST',
header: { 'Content-type': 'text/json' }
})
.success(function (mydata) {
$scope.hotels = JSON.parse(JSON.stringify(mydata.SearchResponse.Hotels.Hotel));
$scope.allData = JSON.parse(JSON.stringify(mydata.SearchResponse.Hotels.Hotel));
$scope.AllLocality($scope.allData);
})
.error(function (mydata) {
$scope.hotels = "Failed";
console.log(JSON.stringify(mydata));
});
}
并且收到错误是 "阻止跨源请求:同源策略禁止在http://example.com/some-page读取远程资源。 (原因:CORS标题' Access-Control-Allow-Origin'缺失)。"
我怎么能解决这个问题?
答案 0 :(得分:1)
这不是一个角度问题。
原因是您正在触发跨源请求(例如,您的应用程序位于域上,而url: 'myurl'
指定的请求是针对不同的域),并且HTTP不允许它,除非权限是由服务器通过向响应添加CORS头来接收请求。
要解决您的问题,请在此处查看以下四个选项之一(我相信您可以根据具体设置找到更多选项):
$http
响应您正在执行的xhr) $http
JSONP。 答案 1 :(得分:0)
嗨,我遇到了同样的问题,但是现在我通过以下方法解决了它:
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method, Authorization");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");
请在控制器上将标头传递给parent :: __ construct();