看到 Status 204 然后看到 Status 200 正常吗?

Normal to see Status 204 then Status 200?

我正在 chrome 的网络选项卡中查看我的 ajax 请求,我注意到我所做的每个 ajax 请求都会发生两次。

第一个是 204,然后是 200。我的 ajax 呼叫只被击中一次,所以我不确定为什么有 2 个。

编辑

看来和Cors有关,我刚刚设置星标(*)进行测试

我想我能做的不多,不让它做 2 个请求,但真正让我明白的是为什么它需要这么长时间,我看着 google chrome 网络和在我的页面上,这 204 个花费了 110 毫秒到 1.97 秒。

这是 CORS - Cross-origin resource sharing "protocol" 的结果。

当向其他域发出请求时,浏览器会在您的请求之前发出请求,询问服务器是否可以继续该请求。

这个请求使用方法OPTIONS并且应该没有内容,只有响应头,这就是为什么响应代码是204(没有内容)。确认请求被允许后,浏览器继续您的请求,现在将 return 200(或任何其他)状态代码。

当您尝试向其他域发送 AJAX 请求时,您违反了 same-origin 政策。

您发送请求的服务器允许跨域请求。在此过程中,应该有一个预检调用,即HTTP OPTION调用。

因此,您对选项和结果有两个响应。