我有一些代碼使用jQuery的$.ajax()
。AJAX和數據格式故障
我發現我必須通過JSON.stringify()
傳遞我的數據。
$.ajax({
url: '/Resource/ReportError',
type: 'POST',
data: JSON.stringify({
ResourceId: popup.data('id'),
Reason: reason,
Description: $('#report-error-description').val(),
Email: $('#report-error-email').val()
}),
contentType: 'application/json; charset=utf-8',
success: function (data) {
// ...
},
error: function() {
// ...
}
});
到目前爲止,這麼好。但現在我用它來獲取一些數據,只傳入一個ID。所以我想我應該使用GET來代替。
$.ajax({
url: '/Resource/GetInitialReviewData',
type: 'GET',
data: JSON.stringify({ resourceId: resourceId }),
contentType: 'application/json; charset=utf-8',
success: function (data) {
// ...
},
error: function() {
// ...
}
});
但這種失敗對服務器上的resourceId
是null
錯誤。
如果我刪除電話JSON.stringify()
,那麼它的工作原理!
data: { resourceId: resourceId },
任何人都可以用容易理解的方式解釋這個嗎?爲什麼我需要JSON.stringify
用於POST但不適用於GET。
你不需要'JSON.stringify()'的一個url如果你的模型的屬性是簡單的類型(但你需要刪除'contentType:'application/json; charset = utf-8','。')並添加'contentType:'application/json; charset = utf-8' '在GET中毫無意義(它沒有任何內容) –
@StephenMuecke:這是'contentType'在這裏搞砸了我嗎?希望看到你對這個評論有更多的評論成爲答案。 –
我需要考慮如何做到這一點,而不寫一本小書的章節 –