Springbootフロントエンドはバックエンドに配列を伝達し,バックエンドは注意の問題を受信する
エラー1:org.springframework.web.HttpMediaTypeNotSupportedException: Content type ‘application/json;charset=UTF-8’ not supported.
理由:springmvc@RequestBody注記でjson文字列をコミットしてpojoパラメータに自動的にバインドする場合は、「アプリケーション/json;charset=UTF-8」のタイプが必要です.そうしないと「not supported」異常が放出されます.
エラー2:JSON parse error:Unrecognized token‘id’:was expecting(‘true’,‘false’or‘null’).
理由:戻りデータのフォーマットが規範化されていない.DataTypeがjsonとして指定すると、1.4+以上のjqueryバージョンはjsonフォーマットに対してより厳しい要求をする.厳密なjsonフォーマットでなければsuccessコールバック関数は正常に実行できません.すなわち、書き方data:{"ids":JSON.stringify(str)}は誤りであり、正しくはdata:JSONである.stringify(str).
参照先:https://blog.csdn.net/qq_36802726/article/details/88419297
例:
理由:springmvc@RequestBody注記でjson文字列をコミットしてpojoパラメータに自動的にバインドする場合は、「アプリケーション/json;charset=UTF-8」のタイプが必要です.そうしないと「not supported」異常が放出されます.
エラー2:JSON parse error:Unrecognized token‘id’:was expecting(‘true’,‘false’or‘null’).
理由:戻りデータのフォーマットが規範化されていない.DataTypeがjsonとして指定すると、1.4+以上のjqueryバージョンはjsonフォーマットに対してより厳しい要求をする.厳密なjsonフォーマットでなければsuccessコールバック関数は正常に実行できません.すなわち、書き方data:{"ids":JSON.stringify(str)}は誤りであり、正しくはdata:JSONである.stringify(str).
参照先:https://blog.csdn.net/qq_36802726/article/details/88419297
例:
function deleteList(){
var arr=new Array();
if(confirm(" ?")){
var flag = false;
//
var cbs = document.getElementsByName("ids");
for (var i = 0; i < cbs.length; i++) {
if(cbs[i].checked){
//
flag = true;
break;
}
}
if(flag){//
for (var i = 0; i < cbs.length; i++) {
if(cbs[i].checked){
//
arr.push(cbs[i].value);
}
}
}
}
$.ajax({
dataType: "json",
url: "/user/deleteList.do",
type: "post",
data: JSON.stringify(arr),
contentType: "application/json;charset=UTF-8",
dataType:"json",
success: function (data) {
alert(data.message);
if (data.success) {
window.location.href = "/user/findAll.do";
} else {
}
},
error: function (e) {
alert(" ");
location.reload();
}
});
}
@ResponseBody
@RequestMapping("/deleteList.do")
public Result deleteList(@RequestBody String[] ids){
for (String userid:ids) {
userService.delete(userid);
}
return new Result(true, " ", null);
}