我在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,故名爲xhrFields
和crossDomain
設置的原因,但目前收容的,因爲與IE8和IE9和XDomainRequest
問題同一個域中的一切。
我測試過它完全相同的設置(操作系統/瀏覽器/ jQuery),它對我來說工作得很好。你能否提供一個能夠重現問題的獨立工作示例? – ndm
@ndm發現問題,是由另一個腳本:( – jamiebarrow