AngularJS $ http возвращает код состояния 0 из неудачного запроса CORS
Хорошо, я посмотрел на все это. В основном мы используем $ http-запрос, который является междоменным. Наш сервер разрешает домен и когда запрос возвращает 200, все в порядке. Однако каждый раз, когда наш сервер возвращает ошибку 500, 401, что угодно, Angular считает, что это проблема CORS.
Я отладил ответ с помощью Fiddler, чтобы убедиться, что мой сервер возвращает 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 не может загрузить поддельный хост / пример. В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Источник 'mylocalhost: 5750', следовательно, не имеет доступа.
Тем не менее, в Fiddler, истинный ответ:
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