我正在chrome的网络标签中查看我的Ajax请求,我注意到我做的每个Ajax请求都会发生两次。
第一个是204,然后是200。我的ajax调用只被打了一次,所以我不确定为什么会有2。
编辑
因此,这似乎与Cors有关,我刚刚将其设置为星号(*)进行测试。
我想没有2个请求我无能为力,但是真正让我明白的是为什么要花这么长时间,我看着google chrome网络,在我的页面上这204花了110毫秒到1.97秒。
答案 0 :(得分:2)
当您尝试将AJAX请求发送到其他域时,就违反了同源策略。
您正在发送请求的服务器允许跨域请求。在此过程中,应该进行预检调用,即HTTP OPTION调用。
因此,您对OPTION和结果有两个答复。
答案 1 :(得分:1)
这是CORS - Cross-origin resource sharing“协议”的结果。
在其他域中执行请求时,浏览器会在您的请求之前执行一个请求,询问服务器是否可以继续该请求。
此请求使用方法OPTIONS
,并且不应包含任何内容,而仅包含响应标头,这就是为什么响应代码为204(无内容)的原因。确认允许该请求后,浏览器继续您的请求,现在将返回200(或任何其他)状态代码。