解決SpringMVC接收不到ajaxPOST參數(shù)的問題
問題
今天遇到一個(gè)問題,代碼如下
java:
@PostMapping(value = "/method")
@ResponseBody
public Object method(Integer id,String audit_content) {
return null;
}
js:
var data = {id:7,audit_content:"11111111111111111111a1"};
$.ajax({
type: "POST",
url: "/method",
data:data,
contentType: "application/json;charset=utf-8",
success: function (result) {
$("#my_result").html(JSON.stringify(result));
},
error: function () {
console.log("shibai")
}
});
這樣的話,java后臺的id和audit_content永遠(yuǎn)都是null;就算用HttpServletRequest的getParameter("id")也一樣沒用。
解決
原因是js代碼里的contentType: "application/json;charset=utf-8",刪掉或者改成默認(rèn)的"contentType: application/x-www-form-urlencoded"就行了。
拓展
那么什么時(shí)候用contentType: "application/json;charset=utf-8"呢,后臺不是接收單個(gè)字符串,而是一個(gè)實(shí)體類時(shí)就用它了。
java代碼:
@PostMapping("/method2")
@ResponseBody
@Transactional
public Object method2(@RequestBody Body body) {
return null;
}
js代碼:
var data = {"id": i, "show_status":0};
$.ajax({
type: "POST",
url: "/method2",
data: JSON.stringify(data),
contentType: "application/json;charset=utf-8",
success: function (result) {
$("#my_result").html(JSON.stringify(result));
},
error: function () {
console.log("shibai")
}
});
這樣java后臺會得到一個(gè)有id和show_status屬性的Body類,注意一定要JSON.stringify(data),不能直接傳data。
以上這篇解決SpringMVC接收不到ajaxPOST參數(shù)的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
spring-boot項(xiàng)目啟動遲緩異常排查解決記錄
這篇文章主要為大家介紹了spring-boot項(xiàng)目啟動遲緩異常排查解決記錄,突然在本地啟動不起來了,表象特征就是在本地IDEA上運(yùn)行時(shí),進(jìn)程卡住也不退出,應(yīng)用啟動時(shí)加載相關(guān)組件的日志也不輸出2022-02-02
SpringBoot中ApplicationEvent的使用步驟詳解
ApplicationEvent類似于MQ,是Spring提供的一種發(fā)布訂閱模式的事件處理方式,本文給大家介紹SpringBoot中ApplicationEvent的使用步驟詳解,感興趣的朋友跟隨小編一起看看吧2024-04-04
詳解如何在SpringBoot項(xiàng)目中使用全局異常處理
在完整的項(xiàng)目開發(fā)中,異常的出現(xiàn)幾乎是無法避免的;如果凡是有可能出現(xiàn)異常的地方,我們都手動的使用try-catch將其捕獲的話,會使得代碼顯得十分臃腫并且后期不好維護(hù)。本文介紹了pringBoot項(xiàng)目中使用全局異常處理的方法,需要的可以參考一下2022-10-10
Spring?boot?運(yùn)用策略模式實(shí)現(xiàn)避免多次使用if
這篇文章主要介紹了Spring?boot?運(yùn)用策略模式實(shí)現(xiàn)避免多次使用if,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09
Java基礎(chǔ)之JDK1.8新特性lambda表達(dá)式詳解
函數(shù)式接口有且僅有一個(gè)抽象方法,但是可以有多個(gè)非抽象方法的接口,函數(shù)式接口可以被隱式轉(zhuǎn)換為lambda表達(dá)式,這篇文章主要介紹了Java基礎(chǔ)之lambda表達(dá)式(JDK1.8新特性),需要的朋友可以參考下2023-08-08

