jQuery $ .get()函数成功用200但在Firefox中没有返回任何内容

时间:2009-07-27 15:53:08

标签: javascript jquery ajax firefox

我正在写第一篇jQuery,我遇到了jQuery.get()的问题。我在说这个;

$.get(url, updateList);

其中updateList的定义如下;

function updateList(data)
{
    if (data)
    {
        $('#contentlist').html(data);
    }
    else
    {
        $('#contentlist').html('<li><a href="#" id="synclink">Nothing found. Try again</a></li>');
    }
}

该函数运行,并调用updateList。它在Internet Explorer中工作正常。但是,在Firefox中,data参数始终为空。我希望它会填充我作为URL传入的网页内容。我使用它错了吗?

注释;

  • 在Firebug中,我启用了 Net 面板,我收到了请求。我得到200 OKHeaders标签看起来很好,而ResponseHTML面板都是空的。
  • 我正在尝试下载的页面是一个直接的HTML页面 - 服务器代码没有问题。
  • 使用JavaScript的页面是我的机器的本地页面;我正在下载的页面托管在互联网上。
  • 我尝试通过将其从我的页面复制粘贴到浏览器中来检查URL - 它很乐意返回内容。
  • 即使在Firefox安全模式下也会出现错误 - 希望这可以排除恶意插件。

3 个答案:

答案 0 :(得分:7)

由于跨域安全性,您可能无法执行此操作。从file://运行时,Internet Explorer将允许您访问Ajax远程域,但Firefox和Chrome不会。

尝试将两个文件放在同一台服务器上,看它是否有效(应该)。

答案 1 :(得分:1)

您很可能需要修复您正在使用XHR查询的页面,因为它应该返回内容。复制粘贴Firebug网络选项卡中的链接并创建一个新选项卡,然后使用文本编辑器编辑该页面,以便将内容反射回来。

答案 2 :(得分:0)

粘贴警报(或Firebug中的断点)并查看返回的数据是否不是对象(或者是否有任何数据)。如果是前者 - 您可能需要钻取对象以获取标记