PHP 401 状态返回 -1

Vah*_*afi 5 php codeigniter http-response-codes http-status-code-401 angularjs

我正在尝试401在我的应用程序中返回响应状态AngularJS。但在我看到的控制台中,它返回-1

我在 php 中使用的是:

header("HTTP/1.1 401 Unauthorized");
http_response_code(401);
Run Code Online (Sandbox Code Playgroud)

也在代码点火器中:

$this->output->set_header('HTTP/1.1 401 Unauthorized');
$this->output->set_status_header(401, "my status text");
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

它在状态代码中工作良好,例如: 200 、 205 、 206 等。

在此输入图像描述

任何想法?

Que*_*tin 3

您正在从 XMLHttpRequest 发出跨源请求。

在简单的情况下,这意味着服务器必须先向 JavaScript 授予权限,然后浏览器才能将数据提供给 JavaScript。

这不是一个简单的案例。您正在提出需要飞行前授权的复杂请求

在发出您想要发出的 POST 请求之前,浏览器会发出 OPTIONS 请求以请求许可。

服务器正在使用 401 响应来响应 OPTIONS 请求。错误消息明确地告诉您这一点:

预检响应具有无效的 HTTP 状态代码 401

然后浏览器将根本拒绝发出 POST 请求。

因此 POST 请求的状态为 -1。

您需要使用 200 状态(以及适当的 CORS 权限标头)响应 OPTIONS 请求。然后浏览器将发出 POST 请求(如果您愿意,可以使用 401 拒绝该请求)。