日常開發中遇見了一個關於AJAX的坑,很簡單!記一下
開發中使用@RequestBody報415的錯誤
我在AJAX參數裏面加了一個屬性:
contentType : 'application/json',
dataType : "JSON",
//同時將數據轉化爲JSON字符串 因爲網絡不能傳輸對象
data : JSON.stringify(excelDatas),
完整代碼
$.ajax({
url : contextPath+'/base/test',
async : false,
data : JSON.stringify(excelDatas),
contentType : 'application/json',
dataType : "JSON",
type : "POST"
});
後臺數據使用@RequestBody接收對象
@RequestMapping("/base/test")
public void test(@RequestBody ResultDatasVo<String> o) {
System.out.println(o);
}
大概上網查了一下,
1.網絡不能傳輸對象,所以必須把對象轉換爲JSON字符串
2.使用RequestBody註解接收的數據必須有一個對應的(屬性一致的)Bean對象來接收
·3.必須指定請求方式,據我所知,這玩意只能是POST請求才能訪問
4.我個人認爲,@RequestBody是把JSON字符串轉換爲對象的一個註解(我感覺,錯了不負責啊)