jQuery:我得到OPTIONS请求而不是GET

Kur*_*lmi 16 jquery

我使用的是简单的jQuery

$.get( .... );
Run Code Online (Sandbox Code Playgroud)

这里没有获得GET响应,而是获得OPTIONS.(在firebug Net中检查)

相同的代码在Safari中正常工作.看起来像Firefox的一些问题.

解决此问题的任何解决方法/解决方案..

谢谢

Kurund

KAR*_*ván 28

OPTIONS你看到的请求是预检请求,你可以在这里阅读:

它就在那里,因为您正在请求跨域XMLHttpRequest,因此浏览器必须检查您的请求是否在远程服务器上被允许.

解决问题有两种解决方案(如上所述):

  • OPTIONS使用相应的Access-Control-*头实现请求的响应
  • 使用JSONP请求而不是简单的JSON

  • 我不得不说'现代'浏览器的跨域行为变得荒谬可笑.如果你有像couchdb这样的服务器发送Access-Control-Allow-Origin:*但是没有实现OPTIONS你就不能做一个简单的AJAX GET,因为浏览器决定先"检查"并破坏所有内容.开发人员知道GET会起作用,但浏览器不相信它们! (6认同)