angularjs — статус PHP 401 возвращает -1

Я пытаюсь вернуться 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 и т. Д.

введите описание изображения здесь

Любая идея?

3

Решение

Вы делаете запрос перекрестного происхождения из XMLHttpRequest.

В простом случае это означает, что сервер должен предоставить разрешения JavaScript, прежде чем браузер передаст данные в JavaScript.

Это не простой случай. Вы делаете сложный запрос, который требует предпечатная авторизация.

Перед выполнением запроса POST, который вы хотите сделать, браузер отправляет запрос OPTIONS с запросом разрешения.

Сервер отвечает на запрос OPTIONS ответом 401. Сообщение об ошибке говорит вам об этом явно:

Ответ на предпечатную проверку имеет недопустимый код состояния HTTP 401

Затем браузер вообще отказывается делать запрос POST.

Следовательно, статус запроса POST равен -1.

Вы должны ответить на запрос OPTIONS со статусом 200 (и соответствующими заголовками разрешений CORS). Затем браузер сделает запрос POST (который вы можете отклонить с помощью 401, если хотите).

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]