jQuery$.ajax(),$.post在Firefox中以请求\方法发送“选项”

在我认为是一个相对简单的jQuery插件时遇到了问题

该插件应通过ajax从php脚本获取数据,以向<选择&gt。ajax请求非常通用:

$.ajax({
url:o.url,
键入:“post”,
contentType:“application/x-www-form-urlencoded”,
数据:“{”方法“:”获取状态“,”程序“:”探索“}”,
成功:功能(数据、状态){
console.log(“Success!!”);
控制台日志(数据);
控制台日志(状态);
},
错误:函数(xhr、desc、err){
console.log(xhr);
console.log(“Desc:+Desc+”\nErr:+err);
}
});

这在Safari中似乎效果不错。在Firefox3.5中,服务器上的请求类型始终是“选项”,并且不会显示$\u POST数据。Apache将请求记录为“选项”类型:

::1---[08/Jul/2009:11:43:27-0500]“OPTIONS sitecodes.php HTTP/1.1”200 46

为什么这个ajax调用可以在Safari中使用,而不能在Firefox中使用,我如何为Firefox修复它

响应头
日期:2009年7月8日星期三格林威治时间21:22:17
服务器:Apache/2.0.59(Unix)PHP/5.2.6 DAV/2
X-Powered-By:PHP/5.2.6
内容长度46
保持活动超时=15,最大值=100
连接保持活动状态
内容类型text/html
请求头
主机订单:8888
用户代理Mozilla/5.0(Macintosh;U;Intel Mac OS X 10.5;en-US;rv:1.9.1)Gecko/20090624 Firefox/3.5
接受text/html、application/xhtml+xml、application/xml;q=0.9,*/*;q=0.8
接受我们的语言,嗯;q=0.5
接受编码gzip,放气
接受字符集ISO-8859-1、utf-8;q=0.7,*;q=0.7
活命300
连接保持活动状态
起源http://ux.inetu.act.org
访问控制请求方法POST
访问控制请求头x-requested-with

以下是Firebug输出的图片:

错误的原因是同源策略。它只允许您对自己的域执行XMLHTTPRequests。看看是否可以改用JSONP回调:

$.getJSON('http://<url>/api.php?回调=?',函数(数据){alert(数据);});

发表评论