ajax 跨域时候,为什么会发送两次请求,并且后台响应了两次
有什么办法屏蔽预发送请求?还有网上说发送两次请求是因为请求是复杂请求,简单请求只发送一次,哪些属于复杂请求?怎么讲复杂请求转变为简单请求?
- 发布:2016-07-25 00:01
- 更新:2017-03-23 09:03
- 阅读:1412
Danny - QQ125904483
AJAX跨域请求时会先发送OPTIONS嗅探请求,确认Access-Control-Allow-Origin允许之后,第二次请求才会发送要求的请求,可以设置Access-Control-Max-Age
撒网要见鱼 - 厚积薄发!
虽然间隔许久,但还是回答下吧(可能对其他人有用):
- 如上述回答中提到的,ajax跨域时,非简单请求会发一次OPTIONS嗅探,需要后台运行OPTIONS请求
- 解决ajax跨域的话,现在的方案主要是CROS(JSONP几乎很少使用了)
- 有时候发生OPTIONS请求时,你可以抓包到两个请求(一个OPTIONS,一个实际请求),但是不管怎样,实际的ajax是只会走一次成功回调或失败回调的
具体原理与解决方案可以参考:
SSDNJ (作者)
我登陆时候还是会提示两次登陆成功,不解,求教了
2016-07-25 10:32