ajax成功没有在firefox中触发

时间:2010-02-17 11:52:08

标签: javascript jquery ajax firefox

我有一个奇怪的问题,我不能在谷歌搜索后解决。 构建我的Web应用程序的方式不是很优化,但我现在无法做任何事情。

我在C#中创建了一个用户控件。此用户控件由位于iframe内的aspx页面托管,此页面再次位于框架内。 (不是最佳的)。

但我认为唯一重要的是外框。托管页面位于另一个域而不是其他页面/部件。

这个框架里面是我的代码。我有一个jquery脚本,当它在服务器上检测到新数据时更新数据。 要获取数据,我使用jquery-ajax。

 var indexURL = "/data/indexProxy.aspx";

__LOG("Lets get the XML");
$.ajax({
    url: indexURL,
    type: 'GET',
    dataType: 'xml',
    contentType: "text/xml; charset=\"utf-8\"",
    error: function(request, error) {
        alert('Error loading XML document' + request + error);
    },
    success: function(xml) {
        __LOG("ajax success...");
        OnSucceededXml(xml);
    }
});

__LOG函数只是写入firebug控制台。

因此,此代码运行良好,直到发生某些事情。不太确定它是如何发生的,但有时当功能失败或被中断时,它就会停止工作。我认为这与ajax函数中的页面重新加载有关。

发生这种情况后,成功函数永远不会被触发。在firebug consule中,我可以看到“让我们获取XML”消息,我可以看到ajax-call是触发器并返回200或304(未修改)。但是__LOG里面的成功并不是触发也不是功能。

为了让它再次运行,我必须完全重启firefox,有时会清空缓存。

如果我在框架外打开另一个domian框架内的页面,一切都会再次起作用,但我不能真正做到这一点作为应用程序的一部分。

有人经历过类似的事吗?此外,我并不认为这与jquery相关,因为我在旧脚本中已经表达了一些类似的东西。

由于

恩德雷

2 个答案:

答案 0 :(得分:0)

这可能是因为您在Firefox中执行跨域请求,我认为这是Firefox的默认策略禁止的。显然你可以tweak the setting,但对于面向互联网的网站,我认为不会飞,而你必须找到另一种方式。

您是否跟踪过Firebug中控制台窗口的输出?

答案 1 :(得分:0)

您可以尝试在通话中加async: false,

请注意“ajax函数中的页面重新加载”的含义。