【问题标题】:getJSON call working on IE 7 but not Firefox 3getJSON 调用适用于 IE 7 但不适用于 Firefox 3
【发布时间】:2008-12-10 21:53:43
【问题描述】:

我有一个使用当前版本的 JQuery 的 Web 应用程序,它需要从 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 很陌生,所以请温柔一点。

谢谢, 詹姆斯

【问题讨论】:

  • 你能显示实际的 json retunred,我可以在本地模拟它
  • 您还看到在控制台 firebug winow 或 net 选项卡中发送的请求吗?
  • 是的,请检查 firebug 的控制台窗口以获取请求详细信息。
  • 浏览器对无效 JSON 响应的反应不同。如果您有尾随逗号,通常 IE 会在 Firefox 正常时失败。

标签: jquery ajax json firefox rest


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我有同样的问题,我认为你是正确的。在 Firebug Net 面板中,它不执行 GET,而是执行 OPTIONS。因此,我认为我需要弄清楚 CORS(跨源资源共享)是如何工作的。
    【解决方案3】:

    在我找到 ajaxdotnet 插件之前,我在使用 jQuery 的 Web 服务时遇到了问题。

    【讨论】:

      【解决方案4】:

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

      正如palehorse 所说,您对getJSON 的调用似乎缺少数据参数。当我不需要它时,我通常会为此传递 null。

      【讨论】:

      • 如果您正在运行 firebug,应该会显示错误。然后可以使用 Net 面板查看返回的标题。
      【解决方案5】:

      如果您无法让 JQuery 工作,请尝试 Fork。看看 Fork.Ajax 和 Fork.Json。或者使用 Doug Crockford 的 json2.js 解析 JSON,使用任何你喜欢的 XMLHttpRequest 包装器。不久前,我环顾了各种 Javascript 库,大多数情况下它们对我来说太臃肿和奇怪了。你必须学习图书馆的所有小怪癖。

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          【解决方案7】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-05-15
            • 2012-06-23
            • 2011-03-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-01-27
            相关资源
            最近更新 更多