Я пытаюсь вернуться 401
статус ответа в моем AngularJS
приложение. Но в консоли, которую я вижу, он возвращает -1
Что я использую в php:
header("HTTP/1.1 401 Unauthorized");
http_response_code(401);
Также в codeigniter:
$this->output->set_header('HTTP/1.1 401 Unauthorized');
$this->output->set_status_header(401, "my status text");
Он отлично работает в кодах состояния, таких как: 200, 205, 206 и т. Д.
Любая идея?
Вы делаете запрос перекрестного происхождения из XMLHttpRequest.
В простом случае это означает, что сервер должен предоставить разрешения JavaScript, прежде чем браузер передаст данные в JavaScript.
Это не простой случай. Вы делаете сложный запрос, который требует предпечатная авторизация.
Перед выполнением запроса POST, который вы хотите сделать, браузер отправляет запрос OPTIONS с запросом разрешения.
Сервер отвечает на запрос OPTIONS ответом 401. Сообщение об ошибке говорит вам об этом явно:
Ответ на предпечатную проверку имеет недопустимый код состояния HTTP 401
Затем браузер вообще отказывается делать запрос POST.
Следовательно, статус запроса POST равен -1.
Вы должны ответить на запрос OPTIONS со статусом 200 (и соответствующими заголовками разрешений CORS). Затем браузер сделает запрос POST (который вы можете отклонить с помощью 401, если хотите).
Других решений пока нет …