2012-06-23 35 views
8

返回不確定的數據,我有一個非常簡單的代碼:jQuery.ajax() - 在IE9

$.ajax({ 
    cache: false, 
    dataType: 'html', 
    complete: function(jqXHR){ 
    console.log(jqXHR.responseText); 
    }, 
    success: function(data){ 
    console.log(data); 
    }, 
    url: 'http://follows.pl/pages/ajaxtest' 
}); 

則返回FF,Chrome和IE8的一些文字,但在IE9它出現了兩次 「不確定」。

我已經研究過的開發工具在IE9中,它顯示這樣的要求正常工作的正常反應,反應是好的,但變量是不確定的

響應的頭:

Response HTTP/1.1 200 OK 
Cache-Control no-cache 
Content-Type text/html; charset: UTF-8 
Pragma no-cache 

響應

string(4) "test" 
+0

[*某些類型的Ajax請求,如JSONP和跨域GET請求,不使用XHR;在這些情況下,傳遞給回調函數的XMLHttpRequest和textStatus參數是未定義的。*](http://api.jquery.com/jQuery.ajax/#callback-functions)我期望在所有或更舊的IE版本中發生儘管如此,而不是新的。 – ThiefMaster

回答

0

試試這個:

$.ajax({ 
    cache: false, 
    dataType: 'html', 
    complete: function(data){ 
    console.log(data); 
    }, 
    success: function(data){ 
    console.log(data); 
    }, 
    url: 'http://follows.pl/pages/ajaxtest' 
}); 

通知

在成功函數

success: function (data, textStatus, jqXHR) 

的對象是third說法

您實際上是通過訪問不存在的屬性來響應數據。

也在功能齊全

complete: function (jqXHR, complete_textStatus) 

這裏的目標是first的地方!

你必須記住位置。

+0

問題是,我應該有任何數據,但我沒有它。 – Vexator

7

我懷疑這是你的問題:

Content-Type text/html; charset: UTF-8 

該值的格式不正確(在「:」之後的字符集是錯誤的)和IE9不喜歡它,只是默默地失敗而不是說一些有用的東西。試試這個:

Content-Type: text/html;charset=utf-8 
1

我想盡一切辦法解決AJAX發佈的這個問題上的IE瀏覽器(如添加了jQuery Ajax對象沒有緩存,數據類型configType,等...),但在最終的問題是沒有AJAX/JavaScript,但在PHP文件:只爲IE瀏覽器的PHP文件不得不開始與下面的頭

header("Content-type: text/html; charset=utf-8"); 

所以,你必須明確指示PHP的內容類型因爲您的ajax調用而獲得的頁面。

例子,假設叫做html頁面one.html,你把你的JavaScript和稱爲two.php

在one.html組JavaScript一個PHP頁面

var url = 'two.php'; 
$.ajax({ 
url: url, 
type: "POST", 
success: function(response){ 
alert(response) 
} 
}); 

在二。php頁面設置如下:

<?php 
header("Content-type: text/html; charset=utf-8"); 
echo ('stuff to do'); 
?> 

這樣對我來說就像一個魅力!