【发布时间】:2014-10-19 09:16:10
【问题描述】:
我的问题是我的应用程序在 localhost:8080 上运行的 angularjs $http 调用
var url "https://api.acme.com/RX/v1/user";
$http.get(url).success(function (data) {
alert('yay');
$scope.user = data;
});
第一个请求成功,Chrome 记录了以下响应:
Status Code:302 Found
Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:http://localhost:8080
Location:https://login.acme.com/cas/login?service=https%3A%2F%2Fapi.acme.com%2FRX%2Fv1%2Fuser
这会导致浏览器向重定向位置发出第二个 GET 请求:
https://login.acme.com/cas/login?service=https%3A%2F%2Fapi.acme.com%2FRX%2Fv1%2Fuser
第二个请求失败并在 Chrome 中报告以下错误:
XMLHttpRequest cannot load https://login.acme.com/cas/login?service=https%3A%2F%2Fapi.acme.com%2FRX%2Fv1%2Fuser. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
所以我有一个从源到 url 的 CORS 请求,该请求允许将请求重定向到另一个也配置为允许请求的 url。但是重定向请求失败。我应该期望这行得通吗?
注意,api.acme.com 和 login.acme.com 都配置为允许所有来源使用
Access-Control-Allow-Origin: *
【问题讨论】: