在我认为是一个相对简单的jQuery插件时遇到了问题
该插件应通过ajax从php脚本获取数据,以向<;选择>。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(数据);});