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

我使用的是简单的jQuery

$.get( .... ); 

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

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

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

谢谢

Kurund

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

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

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

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

这可能是由于Javascript执行跨域XMLHttpRequests的限制。 出于安全原因,通常不允许这样做。 请参阅上面提到的问题或我提出的类似问题 。

要解决这个问题:

  • 编写将代表您的AJAX请求检索远程资源的服务器端组件(使用PHP或其他),或
  • 做一个JSONP调用:请参阅http://www.insideria.com/2009/03/what-in-the-heck-is-jsonp-and.html (或者围绕StackOverflow寻找JSONP):)

希望有所帮助!

我有同样的问题,我想到的原因是在html 部分我已经设置了基本元素

  

我改成了

  

我希望这有助于某人: http : //kurund.com/blog/2010/09/09/how-to-call-external-site-url-using-jquery-ajax/

您正在向跨域发送请求。

对于跨域请求,将内容类型设置为application / x-www-form-urlencodedmultipart / form-datatext / plain以外的任何内容将触发浏览器向服务器发送预检OPTIONS请求。

因此,您可能需要更改指定contentType以避免OPTION请求。 例:-

 $.ajax({ url: "crossdomainurl", type: "GET", contentType: 'text/plain' });