沒有響應頭我注意到,與IE8和IE9,如果我把我的使用jQuery.ajax()的RESTful API與POST和PUT動詞,那麼我不會在jqXHR中收回任何響應標頭。但是,GET請求按預期工作。jQuery.ajax與POST或PUT對IE8和IE9
此行爲與所有其他瀏覽器不同。我已經驗證過,Chrome,FF,Opera和Safari都會在POST和PUT請求的響應中返回全部預期的標題。只有IE8和IE9似乎將標題放在地板上。 (有一件事我沒有檢查是什麼與頭部請求。)
我已經驗證與提琴手頭實際上是通過電線,所以問題是要麼與jQuery本身或與IE8和IE9。
這是一個已知的問題?如果是這樣,是否有解決方法。我可以重載/覆蓋jQuery中的某些內容以便在POST和PUT之後保留標題嗎?我目前的解決方法是簡單地在成功回調中使用GET重新獲取修改後的數據,因爲IE8和IE9不會混淆GET操作的標頭。
這裏是我的主要基於jQuery的AJAX輔助方法的一個片段:
$.ajax({
url: String.format(um.proxy.url, url),
type: ajaxParams.verb,
contentType: "application/json; charset=utf-8",
dataType: "json",
data: String.format('{0}', ajaxParams.jsonData),
headers: mapOfHeaders,
success: function (data, textStatus, jqXHR) {
//...
},
error: function (msg, textStatus, errorThrown) {
//...
}
});
我實際上使用我自己的C#代理充當中間人,因爲REST服務位於不同的域上。但是,這個答案與我的問題是正交的。 JSONP不是一個選項,因爲JSONP只適用於GET請求。而且,問題是隻有IE8和IE9纔會出現這種行爲。所有其他主流瀏覽器按預期工作。 –