SSDNJ
SSDNJ
  • 发布:2016-07-25 00:01
  • 更新:2017-03-23 09:03
  • 阅读:1322

ajax 跨域问题

分类:MUI

ajax 跨域时候,为什么会发送两次请求,并且后台响应了两次
有什么办法屏蔽预发送请求?还有网上说发送两次请求是因为请求是复杂请求,简单请求只发送一次,哪些属于复杂请求?怎么讲复杂请求转变为简单请求?

2016-07-25 00:01 负责人:无 分享
已邀请:
Danny

Danny - QQ125904483

AJAX跨域请求时会先发送OPTIONS嗅探请求,确认Access-Control-Allow-Origin允许之后,第二次请求才会发送要求的请求,可以设置Access-Control-Max-Age

  • SSDNJ (作者)

    我登陆时候还是会提示两次登陆成功,不解,求教了

    2016-07-25 10:32

撒网要见鱼

撒网要见鱼 - 厚积薄发!

虽然间隔许久,但还是回答下吧(可能对其他人有用):

  1. 如上述回答中提到的,ajax跨域时,非简单请求会发一次OPTIONS嗅探,需要后台运行OPTIONS请求
  2. 解决ajax跨域的话,现在的方案主要是CROS(JSONP几乎很少使用了)
  3. 有时候发生OPTIONS请求时,你可以抓包到两个请求(一个OPTIONS,一个实际请求),但是不管怎样,实际的ajax是只会走一次成功回调或失败回调的

具体原理与解决方案可以参考:

ajax跨域,这应该是最全的解决方案了

该问题目前已经被锁定, 无法添加新回复