2013-05-04 49 views
1
不工作

我有以下代碼正在Chrome和Firefox,但不是在IE9

$.ajax({ 
    type : type, 
    url : url, 
    data : reqData, 
    crossDomain: true, 
    cache: false, 
    dataType : dataType, 
    contentType : contentType, 
    success : successFunction 
}).fail(function() { 
    showError("IE9!"); 
}); 

類型是POST,數據類型是JSON和contentType爲application/JSON 所有其他參數都正確

我試圖消除的contentType,刪除緩存,緩存設置爲true,似乎沒有任何工作

有什麼想法? 在此先感謝

+0

給出的錯誤究竟是什麼? ajax調用是否到達服務器? – Nomad101 2013-05-04 02:02:29

+1

你能提供關於請求的更多信息嗎?如果它是'crossDomain',服務器是否已經建立了CORS支持,包括響應[pre-flight'OPTIONS'請求](https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS#Preflighted_requests)瀏覽器可以發送? jQuery的'error'(和'.fail()')回調函數包含一個'errorThrown'參數 - 它告訴你什麼?並且,嘗試在IE9的開發工具中捕獲** Network **細節;檢查發送的請求的狀態和響應,並與您期望的進行比較。 – 2013-05-04 02:20:51

+0

您是否嘗試過使用http調試工具,如[Fiddler](http://fiddler2.com/)或瀏覽器的調試工具中的網絡選項卡?這些工具將幫助您查看流量,以便您知道請求是否實際發送,返回代碼是什麼等。 – clav 2013-05-04 02:21:24

回答

0

查詢的網址路徑(應該是絕對的),並使其獨特添加例如時間戳

var url = 'http://mydomain.com/' ** not '/' ** 
var timestamp = new Date() 
var uniqueUrl = url + (uri.indexOf("?") > 0 ? "&" : "?") + "timestamp=" + timestamp.getTime() 

然後

url : uniqueUrl, 
2

您不能正常使用AJAX跨域訪問在ie中,您必須爲此使用XDR 請參閱this link