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

时间:2009-11-16 18:04:20

标签: jquery

我使用简单的jQuery

$.get( .... );

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

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

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

由于

Kurund

5 个答案:

答案 0 :(得分:28)

OPTIONS请求您看到的是预检请求,您可以在此处阅读:

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

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

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

答案 1 :(得分:1)

这可能是由于Javascript对跨域XMLHttpRequests的限制。出于安全原因,通常不允许这样做。请参阅上面引用的问题或similar question I asked

解决这个问题:

希望有所帮助!

答案 2 :(得分:1)

我遇到了同样的问题,我想到的原因是在html <head>部分我设置了基本元素

<base href="http://local.develepment.url" />

我改为

<base href="http://<?php echo $_SERVER['HTTP_HOST']?>/" />

答案 3 :(得分:0)

答案 4 :(得分:0)

您向跨域发送请求。

  

对于跨域请求,请将内容类型设置为其他任何内容   比 application / x-www-form-urlencoded multipart / form-data ,或者    text / plain 会触发浏览器发送预检选项   请求服务器。

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

$id