2010-01-13 44 views
2

我的代碼完全在FF,Safari和Chrome ...只是在IE 7和8出現這種情況...JQuery的,阿賈克斯和Internet Explorer - 回調時的反應是空白只能

我JQuery的AJAX後的外觀像這樣:

$.post('page.php', { test: 'testing' }, function(r){ 
    alert('Data: ' + r); 
}); 

現在,在IE中,如果響應(r)恢復空白,它將顯示警報。但是,如果r中返回任何內容(即使它只是一個數字,例如1),它也不會顯示警報。沒有錯誤出現,它只是不顯示回調...

任何想法可能是什麼錯?

+0

嘗試'警報(R)',沒有預謀串 –

回答

4

「Internet Explorer」緩存ajax-Request,首先應清除瀏覽器的緩存,然後將代碼編輯爲以下內容。

$.ajax({ 
     url: "page.php", 
     type: "POST", 
     cache: false, 
     data: ({ test: 'testing' }), 
     success: function(r){ 
      alert('Data: ' + r); 
     } 
    } 
); 

使用緩存:假強制瀏覽器不緩存結果

0

您是否嘗試'勾選'您的測試數據密鑰?看來,這發生在我身上一次......

$.post('page.php', { 'test': 'testing' }, function(r){ 
    alert('Data: ' + r); 
}); 
1

如果我是你,我會嘗試明確告訴jQuery的你期待什麼類型的數據後面。如果你希望純文本,所以說這樣的:

$.post('page.php', { test: 'testing' }, function(r){ 
    alert('Data: ' + r); 
}, 'text'); 

如果你希望一個JSON響應,規定:

$.post('page.php', { test: 'testing' }, function(r){ 
    alert('Data: ' + r); 
}, 'json'); 

你可以閱讀更多有關acceptable types here

+0

爲什麼Downvote?答案有問題嗎?希望有機會讓它變得更好。 –