好的,我已经为此看了一遍。基本上我们使用跨越域请求的$ http请求。我们的服务器允许域,当请求返回200时,一切正常。但是,只要我们的服务器返回错误,500,401,无论如何,Angular认为它是一个CORS问题。
我使用Fiddler调试了响应,以验证我的服务器IS是否返回了500个Angular阻塞。
以下是请求:
var params = {
url: "fakehost/example",
method: 'GET',
headers: {
"Authorization": "Basic encodedAuthExample"
}
};
$http(params).then(
function (response) { // success
},
function (error) { // error
// error.status is always 0, never includes data error msg
});
然后在控制台中,我会看到:
XMLHttpRequest无法加载fakehost / example。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' mylocalhost:5750'因此不允许访问。
然而,在提琴手中,真正的反应是:
HTTP/1.1 500 Internal Server Error
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 26 Aug 2014 12:18:17 GMT
Content-Length: 5683
{"errorId":null,"errorMessage":"Index was outside the bounds of the array.","errorDescription":"Stack trace here"}
我在AngularJS v1.2.16
上