相关疑难解决方法(0)

jQuery $ .ajax(),$.post在Firefox中将"OPTIONS"作为REQUEST_METHOD发送

遇到麻烦我认为是一个相对简单的jQuery插件...

该插件应该通过ajax从php脚本中获取数据,以便为a添加选项<select>.ajax请求非常通用:

$.ajax({
  url: o.url,
  type: 'post',
  contentType: "application/x-www-form-urlencoded",
  data: '{"method":"getStates", "program":"EXPLORE"}',
  success: function (data, status) {
    console.log("Success!!");
    console.log(data);
    console.log(status);
  },
  error: function (xhr, desc, err) {
    console.log(xhr);
    console.log("Desc: " + desc + "\nErr:" + err);
  }
});
Run Code Online (Sandbox Code Playgroud)

这似乎在Safari中运行良好.在Firefox 3.5中,REQUEST_TYPE服务器上的"OPTIONS"始终为"OPTIONS",并且不会显示$ _POST数据.Apache将请求记录为"OPTIONS"类型:

::1 - - [08/Jul/2009:11:43:27 -0500] "OPTIONS sitecodes.php HTTP/1.1" 200 46
Run Code Online (Sandbox Code Playgroud)

为什么这个ajax调用在Safari中工作,而不是Firefox,以及如何为Firefox修复它?

Response Headers
Date: Wed, 08 Jul 2009 21:22:17 GMT
Server:Apache/2.0.59 (Unix) PHP/5.2.6 DAV/2
X-Powered-By: PHP/5.2.6
Content-Length  46
Keep-Alive  timeout=15, max=100
Connection  Keep-Alive
Content-Type    text/html …

ajax firefox jquery jquery-plugins

329
推荐指数
7
解决办法
33万
查看次数

为什么我收到OPTIONS请求而不是GET请求?

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js" type="text/javascript"></script>
<script>
$.get("http://example.com/", function(data) {
     alert(data);
});
</script>
Run Code Online (Sandbox Code Playgroud)

它对该URL执行OPTIONS请求,然后从不使用任何内容调用回调.

当它不是跨域时,它工作正常.

不应该只是jQuery与一个<script>节点进行调用,然后在加载时进行回调吗?我明白我无法得到结果(因为它是跨域的),但那没关系; 我只是希望电话通过.这是一个错误,还是我做错了什么?

jquery xmlhttprequest http-get http-options-method

278
推荐指数
3
解决办法
32万
查看次数