我有这个脚本使用jQuery 1.7.1查询我的Ruby on Rails应用程序(位于远程域)。该脚本在Chrome中甚至在IE9中都能正常工作,但在Firefox中无法正常工作。Crossdomain jQuery.ajax有时在firefox 8中不起作用,但在Chrome/IE中工作
下面是脚本:
Informer= {
getData: function(args)
{
$.ajax({
dataType: 'jsonp',
data: args,
url: 'http://localhost:3000/informer.js',
beforeSend: function() {
alert("beforeSend");
},
error: function() {
alert("error");
},
success: function (data) {
alert("success");
},
complete: function(){
alert("complete");
}
});
}
}
我这样称呼它
$(document).ready(function()
{
Informer.getData(someArgs);
});
因此,在铬我得到3个警报,而在Firefox中我只得到 “beforeSend”。我也没有看到萤火虫的任何要求。
它肯定与URL有关。我将其更改为http://jsfiddle.net/echo/jsonp/,它工作。 但我仍然有2个原因是:
UPD
总之,这里是我到目前为止有:
- 它并没有为我在所有的工作昨日(浪费了3个小时,叹气),今天也是如此。
- 它总是在Chrome和IE
- 工作的请求未在Firebug
- 当脚本无法显示(意思是,我只得到beforeSend警报),我的应用程序的日志没有更新(我假设, FF不发送请求)
- 尝试使用jquery-jsonp没有结果
- FF8的11个用户中有10个报告脚本工作。
Here's为那些谁是interrested测试脚本(如果有的话)
确保URL存在。您确定要对另一个JS文件执行AJAX调用吗? – Jemaclus
嘿,Jemaclus。正如我所说的,该脚本在Chrome中运行得非常好,所以URL确实存在。 informer.js实际上不是一个文件。这是一个Ruby轨道动作,返回JSONP。 – bassneck
只是为了好玩,我把这个放在一起:http://jsfiddle.net/MarkSchultheiss/NKgyM/示例。现在我的问题是,为什么你的任何浏览器出现错误(警告错误),除非你在使用的URL上有错误。 –