7
我有以下的jQuery AJAX請求:爲AJAX請求 「400錯誤的請求」 的響應
// collect form data and create user obj
var user = new User();
user.firstname = $("#usrFirstName").val();
user.lastname = $("#usrSurname").val();
user.role = $("#usrRole").val();
// actual ajax request
$.ajax({
type: 'POST',
url : 'http://awesome-url',
crossDomain: true,
data: user,
contentType:"application/json; charset=utf-8",
dataType: 'json'
}).done(function(data, status) {
alert(JSON.stringify(data));
}).fail(function(data, status) {
alert(status);
alert(JSON.stringify(data));
});
來自服務器的響應是:
「狀態」:400, 「狀態文本」: 「錯誤請求」
「客戶端發送的請求在語法上不正確。」
服務器運行Spring-MVC。但據我所知,它工作正常。因爲如果我使用郵遞員手動發送請求並且以下配置有效。
部首:
Content-Type application/json; charset=utf-8
內容:
{"firstname":"alex","lastname":"lala","role":"admin"}
我不得不提到它是一個跨域請求(用於時間發展,它將在相同的域中被託管服務器)。我確實禁用了瀏覽器中的安全設置,並且對服務器的AJAX請求工作正常(只要我不需要發送數據)。
什麼,當你形成一個基於瀏覽器的REST工具完全相同的請求,並提交它發生?你有沒有嘗試在發送之前將你的用戶對象串起來? –
如果_server_不喜歡它收到的數據,那麼你應該問_server_爲什麼 - 意思是,記錄實際進入的請求,檢查日誌文件等。 – CBroe
我只是嘗試了stringify,它的工作原理。我很困惑,因爲我認爲這是如果你在jQuery.ajax上拋出一個對象會發生什麼。發佈它作爲答案,我會接受它。 – rob