我正在嘗試使用Angular $ http與下面的代碼進行交叉源POST請求。
//I've tried setting and removing these http config options
$http.defaults.useXDomain = true;
delete $http.defaults.headers.common['X-Requested-With'];
$http.defaults.headers.common['Content-Type'] = 'application/x-www-form-urlencoded';
//Basic request, with some private headers removed
return $http({
method: 'POST',
//withCredentials:true,
headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
params: params,
url: url
});
預檢OPTIONS請求得到一個200 OK
,但是隨後的POST接收400 Bad Request
響應。查看Chrome調試窗口中的跟蹤,我沒有看到POST的Content-Type: application/x-www-form-urlencoded; charset=UTF-8
標頭。我假設這就是服務器返回錯誤請求響應的原因。
我設置了一些其他自定義標題,我已經省略了上面的代碼,並且它們正在發送並顯示正常。
我還應該提及,我可以使用Chrome的Advanced Rest Client應用程序發出此請求並收到正確的回覆。 (一個訪問令牌)
我也試過只是做一個直接的XMLHttpRequest(),但我得到了同樣的錯誤。
任何有關爲什麼我的Content-Type標頭沒有設置的見解?
可能重複[Angular,內容類型不是使用$ http發送](http://stackoverflow.com/questions/16194442/angular-content-type-is-not-being-sent-with-http) –