2013-10-03 42 views
1

我在Windows 7 64位上使用jQuery 1.9.1和Internet Explorer版本10.0.9200.16686,更新版本10.0.9(KB2870699)。jQuery POST不發送IE10上的Content-Type

使用$ .ajax進行POST時,Content-Type頭不會被髮送。它在Chrome和其他瀏覽器中工作正常,並且我相信在IE10之前工作正常,所以我懷疑IE10的某些更新導致了問題。

我也可以手動創建XMLHttpRequest併發送請求,所以我假設它必須是jQuery中的錯誤,這是真正的問題?我試着升級到1.10.2,但遇到同樣的問題。

我將contentType設置使用$.ajaxSetup

$.ajaxSetup({ 
    contentType: 'application/json; charset=utf-8', 
    context: document.body, 
    dataType: 'json', 
    accepts: 'application/json', 
    processdata: true, 
    cache: false, 
    crossDomain: true, 
    xhrFields: { withCredentials: true } 
}); 

我也試過明確將其設置爲的$.ajax選項的一部分。

var options = { 
    url: basePath + 'login', 
    type: 'POST', 
    dataType: 'json', 
    contentType: 'application/json', 
    data: JSON.stringify({ 
     UserName: username, 
     Password: password, 
     RememberMe: rememberMe || false 
    }) 
}; 
return $.ajax(options).then(...); 

任何想法如何解決它將不勝感激。

注:我們最初使用CORS,故名爲xhrFieldscrossDomain設置的原因,但目前收容的,因爲與IE8和IE9和XDomainRequest問題同一個域中的一切。

+0

我測試過它完全相同的設置(操作系統/瀏覽器/ jQuery),它對我來說工作得很好。你能否提供一個能夠重現問題的獨立工作示例? – ndm

+0

@ndm發現問題,是由另一個腳本:( – jamiebarrow

回答

1

看起來,我們仍然有xdr.js腳本包含在IE上啓用CORS,這是造成這個問題。