getJSON调用IE 7而不是Firefox 3

时间:2008-12-10 21:53:43

标签: jquery ajax json firefox rest

我有一个Web应用程序,它使用当前版本的JQuery,需要从REST Web服务获取一些JSON对象。我正在使用以下调用$ .getJSON:

$。getJSON(“http://localhost:17245/Service.svc/?format=json”,function(data){alert(data.id);});

此调用在IE7中正常工作,我可以在Fiddler中调用该服务没有问题。我已经在Firebug中逐步完成了这个,但是当Firefox进入这一行时,javascript执行似乎“死”,没有错误,没有回调,没有任何东西。

我还使用了$ .ajax并遇到了同样的问题;在IE中工作正常,在Firefox中没有。

有人有什么想法吗?我对JQuery很新,所以请保持温和。

谢谢, 詹姆斯

7 个答案:

答案 0 :(得分:4)

我有类似的问题。签名$ .getJSON是(url,data,callback),我也没有传递数据参数。试试这个:

$.getJSON("http://localhost:17245/Service.svc/?format=json", {}, function(data) {alert(data.id);});

答案 1 :(得分:1)

不确定它是否曾被解决,但它看起来像Firefox中的跨站点脚本限制。它将开发ASP.NET服务器(localhost:0000)上的端口号视为不同的域。尝试在不使用端口号的IIS上托管服务和Web应用程序。

答案 2 :(得分:0)

我在使用jQuery的web服务时遇到了一段时间的问题,直到找到了ajaxdotnet插件。

答案 3 :(得分:0)

我刚遇到这个问题,发现根本原因是JSON中的尾随逗号正在返回。

答案 4 :(得分:0)

确保您正在处理ajaxError,否则如果服务器返回错误,您将永远不会看到回复。

你对getJSON的调用似乎缺少数据论证,正如苍白的说法。当我不需要时,我通常会为此传递null。

答案 5 :(得分:0)

由于Firebug扩展中的错误,我看到了类似的问题。如果安装了它,请尝试禁用它。

答案 6 :(得分:0)

如果您无法使JQuery工作,请尝试Fork。看看Fork.Ajax和Fork.Json。或者使用Doug Crockford的json2.js解析JSON,使用您喜欢的任何XMLHttpRequest包装器。我回过头来看了几个Javascript库,大部分时间它们对我来说太过臃肿和奇怪;你必须学习图书馆的所有小怪癖。