正常看到状态204,然后看到状态200?

时间:2019-05-16 17:12:20

标签: ajax http-status-code-200 http-status-code-204

我正在chrome的网络标签中查看我的Ajax请求,我注意到我做的每个Ajax请求都会发生两次。

第一个是204,然后是200。我的ajax调用只被打了一次,所以我不确定为什么会有2。

编辑

因此,这似乎与Cors有关,我刚刚将其设置为星号(*)进行测试。

我想没有2个请求我无能为力,但是真正让我明白的是为什么要花这么长时间,我看着google chrome网络,在我的页面上这204花了110毫秒到1.97秒。

2 个答案:

答案 0 :(得分:2)

当您尝试将AJAX请求发送到其他域时,就违反了同源策略。

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

因此,您对OPTION和结果有两个答复。

答案 1 :(得分:1)

这是CORS - Cross-origin resource sharing“协议”的结果。

在其他域中执行请求时,浏览器会在您的请求之前执行一个请求,询问服务器是否可以继续该请求。

此请求使用方法OPTIONS,并且不应包含任何内容,而仅包含响应标头,这就是为什么响应代码为204(无内容)的原因。确认允许该请求后,浏览器继续您的请求,现在将返回200(或任何其他)状态代码。