2011-12-07 118 views
1

我有这个脚本使用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

总之,这里是我到目前为止有:

  1. 它并没有为我在所有的工作昨日(浪费了3个小时,叹气),今天也是如此。
  2. 它总是在Chrome和IE
  3. 工作的请求未在Firebug
  4. 当脚本无法显示(意思是,我只得到beforeSend警报),我的应用程序的日志没有更新(我假设, FF不发送请求)
  5. 尝试使用jquery-jsonp没有结果
  6. FF8的11个用户中有10个报告脚本工作。

Here's为那些谁是interrested测试脚本(如果有的话)

+0

确保URL存在。您确定要对另一个JS文件执行AJAX调用吗? – Jemaclus

+0

嘿,Jemaclus。正如我所说的,该脚本在Chrome中运行得非常好,所以URL确实存在。 informer.js实际上不是一个文件。这是一个Ruby轨道动作,返回JSONP。 – bassneck

+0

只是为了好玩,我把这个放在一起:http://jsfiddle.net/MarkSchultheiss/NKgyM/示例。现在我的问题是,为什么你的任何浏览器出现错误(警告错误),除非你在使用的URL上有错误。 –

回答

1

只是为了让你有效:(我插你的你好部分......不知道你有什么就有什么,并假在固定参数的问题:参数)可以在测试此:

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"); 
     } 
     }); 
    }, 
    howdy: {} 
}; 
var someArgs = { 
    hi: "me" 
}; 
$(document).ready(function() { 
    Informer.getData(someArgs); 
}); 

编辑http://jsfiddle.net/MarkSchultheiss/NKgyM/

并将其设置为呼应返回值。

+0

同样的事情。在Chrome中工作,失败FF :( – bassneck

+0

嗯我不知道我们是否会在发布前发布注释,如果这会产生错误警报,那么对不起,我没有确切的浏览器来测试。 –

+0

不幸的是,事实并非如此。我更新了我的问题... – bassneck

相关问题