我打電話給ajax.php
用jQuery。它始終返回一個JSON響應。Ajax在IE上失敗
$.ajax({
type: 'POST',
url: 'ajax.php',
data: 'some=info',
dataType: 'json',
success: function(data) {
if(data != null) {
console.log(data);
} else {
alert('IE fails here!');
}
}
});
Ajax總是以JSON格式返回一些數據。它適用於除IE以外的所有瀏覽器(在IE 7,8和9上測試)。在IE中它總是打印警報(這意味着它永遠不會收到響應信息)。有任何想法嗎?
更新1:我剛剛確認該帖子在IE中永遠不會成功,這就是爲什麼數據始終爲空。
更新2:郵件到達,但只有當它是IE時才返回null。
更新3(解決方案):我的錯,ajax可以防止來自其他服務器的呼叫。它在開始時使用if()語句,要求$ _SERVER ['HTTP_REFERER']的主機是同一臺服務器的主機。現在的問題是,爲什麼IE不能識別ajax調用中的$ _SERVER ['HTTP_REFERER']?
這是API代碼(PHP)
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$security = parse_url($_SERVER['HTTP_REFERER']);
if(in_array($security['host'],array('localhost','tradukka.com','173.203.198.123'))) {
header('Content-type: application/json');
$array = array('nice','data','for','api');
echo json_encode($translation);
}
}
}
IE未能在$ _SERVER [ 'HTTP_REFERER']檢查:■
但它是成功的,因爲它得到警報。由於某種原因它只是空。你是否嘗試過成功:失敗:?你可能在其他地方的代碼有錯誤 - IE不喜歡它,其餘的都忽略它。 –
嘗試在alert.log後輸入「console.log(data)」,查看IE獲取的數據(如果有的話)。 –
我剛剛確認該帖子在IE中永遠不會成功,這就是爲什麼數據始終爲空。 – andufo