[英]$.ajax misfire in ie6
我正在使用flickr api基於由其標簽插入的圖像創建一個簡單的畫廊。
畫廊在除ie6之外的所有瀏覽器中都可以正常工作。 當您在ie6中導航到頁面(通過單擊鏈接)時,$。ajax成功/錯誤代碼塊拒絕觸發,但是,當頁面重新加載或直接導航(通過輸入url)時,沒有問題。
$.ajax({
type: "GET",
url: "http://api.flickr.com/services/rest/?&method=flickr.photos.search&api_key=" + api_key + "&user_id=" + user_id + "&tags=" + tags + "&format=json&jsoncallback=?",
cache: false,
dataType: "jsonp",
contentType: "application/json; charset=utf-8",
success: function(data) {
alert('good');
},
timeout: 2000,
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
上面的代碼顯然是實際javascript的簡化版本,但該錯誤仍然存在。
任何幫助將不勝感激。 這似乎是一個非常奇怪的錯誤。 也許這是一個緩存問題?
這個問題經常發生。 IE緩存AJAX調用。 您每次都需要在呼叫中附加一個隨機數或字符串,這樣它才不會運行緩存的呼叫。
url: "http://[your url]&rand=" + Math.Random(),
兩個想法:
$(document).ready()
塊內? 嘗試在查詢字符串的開頭刪除“&”號:
/?method=flickr.photos.search&...
“鏈接”如何觸發AJAX加載?
我問是因為IE6有一個已知的錯誤 ,即如果您擁有/使用鏈接上的javascript:協議...然后使用JavaScript加載其他頁面,它將請求該頁面,但永遠不會呈現它。 我想知道是否(取決於您的AJAX的附加方式)上述錯誤是否擴展到了AJAX請求而不僅僅是location.href請求。
與您的代碼相關但與您的問題無關的四件事:
第1點和第3點是由於$ .ajax實施方式的限制。 如果您確實需要這些功能,我建議http://code.google.com/p/jquery-jsonp/ 。
現在,除了karim79指出的內容外,我發現您的代碼沒有錯。 所以我的猜測是,在您提供給$(document).ready()的函數中,您之前還有其他問題。 在javascript語法方面, IE遠沒有其他瀏覽器寬容。 嘗試盡早發出$ .ajax呼叫。
也:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.