我正在使用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'}})
我一直试图弄清楚这几天了......卡住了。有谁知道如何解决这个问题?
谢谢!
答案 0 :(得分:3)
您的服务器需要正确响应浏览器代表您发出的OPTIONS请求,以确定CORS请求是否有效。它需要包含一个Access-Control-Allow-Headers
标题,其中包含正确的信息。请参阅:https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS#Preflighted_requests