簡體   English   中英

Firefox中未觸發Ajax成功

[英]ajax success not triggered in firefox

經過數小時的搜尋后,我無法解決一個奇怪的問題。 我的Web應用程序的構建方式不是很理想,但是現在我對此無能為力。

我已經在C#中創建了一個用戶控件。 此用戶控件由iframe內的aspx-page托管,該頁面又位於框架內。 (不是最佳)。

但是我認為唯一重要的是外部框架。 那里的托管頁面位於除其他頁面/部分之外的另一個域上。

在此框架內是我的代碼。 我有一個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領事中,我可以看到“ Lets get the XML”消息,我可以看到ajax調用是觸發器並返回200或304(未修改)。 但是成功內部的__LOG既不觸發也不起作用。

為了使其再次工作,我必須完全重新啟動firefox,有時會清空緩存。

如果我打開另一個domian框架內部,框架外部的頁面,一切都會再次起作用,但是作為應用程序的一部分,我不能真正做到這一點。

有人經歷過類似的經歷嗎? 另外我也不認為這與jquery有關,因為我已經在舊腳本中體驗過一些類似的東西。

謝謝

恩德雷

這可能是由於您正在Firefox中執行跨域請求,我認為Firefox的默認策略禁止這樣做。 顯然,您可以調整設置 ,但是對於面向Internet的網站,我認為這不會奏效,您將不得不尋找另一種方法。

您是否已在Firebug中從“控制台”窗口跟蹤了輸出?

您可能會在通話中嘗試使用async: false,

請注意,“ ajax函數內的頁面重新加載”是什么意思。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM