【发布时间】:2015-01-26 07:32:41
【问题描述】:
我需要使用 Angular 进行跨域请求,但出现错误
XMLHttpRequest cannot load http://machine_name_in_my_network:8082/GetAll. No“Access-Control-Allow-Origin”标头出现在请求的
resource. Origin 'http://localhost:53379' is therefore not allowed使用权。响应的 HTTP 状态代码为 500。
我看到了here 一个解决方案示例,但对我不起作用。
这是我的本地主机向我网络中的一台机器发出的请求,应该返回一个 JSON。
代码片段
//Controller
function crmContatosCtrl($scope, apiService) {
apiService.get('/GetAll').then(function (data) {
$scope.contatos = data;
});
然后来为我服务
function comWebApi_Service($http, $log) {
return {
get: function (url, data) {
//return $http.jsonp(ApiURL + url)
// .success(function (data) {
// debugger;
// })
// .error(function (data) {
// debugger;
// });
return $http.get(ApiURL + url, data).then(
function (res) {
return res.data;
});
},
angular
.module('app')
.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.useXDomain = true;
delete $httpProvider.defaults.headers.common['X-Requested-With'];
}])
.service('apiService', comWebApi_Service);
【问题讨论】:
-
您能否显示您在网络标签中看到的内容...响应??
-
@harish 出现
This request has no response data available.,错误为 500 -
您不能简单地通过在客户端设置标头来启用 cors,您发出请求的服务器必须启用 CORS
-
你能分享你在服务器端尝试过什么吗?你是怎么启用cors的?? cors 启用也是服务器端的决定...
-
阅读here
标签: javascript angularjs