Angular $http status (-1)
Я вызываю бэкэнд-сервис/ресурс по AngularJs $HTTP GET
. Когда он недоступен, он возвращает 404
, а вкладка "Сеть Chrome" показывает, что это 404
как следующее:
Request Method:OPTIONS
Status Code:404 Not Found
НО внутри результата выражения AngularJs $HTTP
, я получаю status=-1
, а не 404
:
{data: null, status: -1, config: Object, statusText: ""}
Почему это происходит?
NB)
У меня есть служба причала на бэкэнд и включена CORS:
"Access-Control-Allow-Origin":"*"
"Access-Control-Allow-Headers": "origin, content-type, accept, authorization"
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS, HEAD"
Ответы
Ответ 1
Он возвращает -1, потому что, как показывают трассы, запрос GET даже не отправлен. То, что было отправлено, - запрос перед полетом OPTIONS, который, возвращая 404, помешал браузеру отправить фактический запрос GET.
Сервер не должен возвращать ответ 404 для запроса OPTIONS. Он должен вернуть ответ 200.