首先我必須道歉,我知道類似於我將要問的問題之前曾被問過,但是這些問題中給出的答案或建議都沒有用於我。IE沒有返回jQuery的結果ajax()調用
赫雷什故事:
我寫了發送AJAX請求,後者又運行PHP腳本執行一個數據庫查詢並返回一個html元素的服務器的功能,特別是它返回:<a href="mypage.php">Click here</a>
。這是我的代碼:
$('#txtHint').hide();
function showReviews(str) {
$.ajax({
xhr: function() {
if ($.browser.msie)
{
return new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
return new XMLHttpRequest();
}
},
url: "dropsearch.php",
cache: false,
type: "post",
data: "q=" + str,
dataType: "html",
success: function(data) {
$('#txtHint').append(data);
$('#txtHint').show();
window.alert(data);
}
});
}
現在,這個工作在普通瀏覽器中完美的罰款,該標籤是在響應頭返回,並追加到txtHint股利。但是,使用Internet Explorer時,響應標頭不會返回任何內容。我甚至用firebug和fiddler來查看頭文件發送和返回的具體內容,由於某些原因,儘管IE發送正確的頭文件並收到了一個頭文件,但它並沒有收到內容。 window.alert()調用只是在IE中顯示一個空的警告框。
我一直在閱讀的IE瀏覽器有緩存問題,當涉及到Ajax調用;然而,確保請求不被阻止不起作用。
有沒有人知道爲什麼會發生這種情況?這一直讓我絕對瘋狂!
任何意見將不勝感激。
Cheers
爲什麼你在調用`$ .ajax`時指定`xhr`屬性?這不應該需要。 `ajax`函數爲你找出正確的請求對象。 – Jacob 2011-01-18 23:04:20
只是一個簡單的問題,爲什麼你將xhr設置爲jQuery的ajax默認值? http://api.jquery.com/jQuery.ajax/可能不是解決方案,但它似乎相當多餘。 – Lance 2011-01-18 23:06:09