AngularJS与CORS和自定义标头

时间:2013-12-26 14:21:23

标签: http angularjs cors

我正在使用Angular $ HTTP向远程API服务(SmartyStreets.com)发出CORS请求。我已经设置了默认值,因为已有详细记录。

.config(['$httpProvider', function($httpProvider) {
    $httpProvider.defaults.useXDomain = true;
    delete $httpProvider.defaults.headers.common['X-Requested-With'];
}])

当我发出没有自定义标题的普通请求时,一切都按预期工作。

// This works as expected
$http({method: 'get', url: $scope.addr.url, headers: {}})

但是,我现在需要设置一些额外的自定义标头。但是设置自定义标头会破坏CORS请求。

// this results in the browser 404 error:
// No 'Access-Control-Allow-Origin' header is present on the requested resource
$http({method: 'get', url: $scope.addr.url, 
headers: {'x-standardize-only': 'true', 'x-  include-invalid': 'true'}})

我一直试图弄清楚这几天了......卡住了。有谁知道如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:3)

您的服务器需要正确响应浏览器代表您发出的OPTIONS请求,以确定CORS请求是否有效。它需要包含一个Access-Control-Allow-Headers标题,其中包含正确的信息。请参阅:https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS#Preflighted_requests