我對使用AngularJs
的特定「PUT」Ajax請求(RESTFul服務)有麻煩。400錯誤請求只使用AngularJs,與jQuery一起工作
同一段代碼適用於jQuery
和普通JavaScript。
$http({
method: "PUT",
url: "https://XXXXXXXXXXXXXX/api.php?rquest=updateUuid",
headers: {
"Content-type": "text/plain",
Authorization: "Basic " + btoa(email + ":" + password)
},
data: {
Email: email,
Uuid: login_response.uuid
}
}).success(function(response) {
console.log(response);
});
jQuery.ajax({
method: "PUT",
url: "https://XXXXXXXXXXXXXX/api.php?rquest=updateUuid",
headers: {
"Content-type": "text/plain",
Authorization: "Basic " + btoa(email + ":" + password)
},
data: {
Email: email,
Uuid: login_response.uuid
}
}).done(function(response){
console.log(response)
});
服務器與JSON
對象作出響應,但第一個代碼(AngularJs
)似乎工作有點不同。 在我沒有設置Content-Type標題之前,我收到一個CORS問題(與jQuery
一起工作,但AngularJs
將content-type設置爲「application/json」並導致錯誤)。
我得到了第一部分固定設置內容類型爲文本/平原,但現在我得到一個400 Bad Request Error
(僅限於AngularJs
)。我也嘗試使用攔截器來刪除transformRequest,但它不起作用。
我使用AngularJs
錯了嗎?因爲我在想,unlinke jQuery
,它在後臺做了額外的「東西」,做了一些額外的頭文件或沒有正確地傳遞數據。
當我沒有將任何數據傳遞給RESTful服務時,通常會出現該錯誤。
我在學習AngularJs
,所以我寧願用它代替jQuery
。 任何幫助將不勝感激。
非常感謝
使用Wireshark查看每種情況下傳遞的標題。 – kamituel 2015-02-05 14:18:25
只需比較兩種情況下發送的標頭。它們是有區別的。 – dfsq 2015-02-05 14:22:50
我考慮過這樣做,但我正在用攔截器調試,記錄每個調用的配置對象和響應。 從我所看到的情況看,一切都是正確的,但實際上它不起作用 – Zorgatone 2015-02-05 14:23:12