AngularJS $ http retorna o código de status 0 da solicitação CORS com falha
Ok, eu procurei por tudo isso. Basicamente, estamos usando a solicitação $ http que SÃO solicitações entre domínios. Nosso servidor permite o domínio e, quando uma solicitação retorna 200, tudo está OK. No entanto, sempre que nosso servidor retornar um erro, 500, 401, o que for, Angular acha que é um problema de CORS.
Depurei a resposta com o Fiddler para verificar se meu servidor está retornando um 500, mas o Angular engasga com ele.
Aqui está o pedido:
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
});
Então, no console, vou ver o seguinte:
XMLHttpRequest não pode carregar fakehost / example. Nenhum cabeçalho 'Access-Control-Allow-Origin' está presente no recurso solicitado. A origem 'mylocalhost: 5750' não é, portanto, permitido o acesso.
No entanto, no violinista, a verdadeira resposta é:
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"}
Estou no AngularJS v1.2.16