728x90
파싱에러난다.
.js파일에서 보내는 데이터명과 달라도 파라미터 인자가 1개 일때는 json형태로 보내준다.
그럼 2개 일때는?
에러가 뜬다.
.js파일에
let data = {
query1: $("#query").val(),
query2: $("#query").val(),
};
작성해줘도
@RequestBody String query1,
@RequestBody String query2
로는 받을 수 없는 것 같다.
dataType: "text",
으로 해줘도 마찬가지이다.
function btn_headerSearch() {
(query = $("#query").val()), console.log(query);
$.ajax({
type: "POST",
url: "/header/search",
data: JSON.stringify(query),
contentType: "application/json; charset=utf-8",
dataType: "text",
})
.done(function (resp) {
alert("글쓰기가 완료되었습니다.");
})
.fail(function (error) {
alert(JSON.stringify(error));
});
}
이렇게 text타입으로 지정하고
@RequestBody String query
query라는 변수명칭을 알맞게 해주면 제대로 작동하는걸 볼 수 있다.
마지막으로 url주소가 /header/search인데
시큐리티에서 /header를 막으면 어떻게 될까
.js의 data가 시큐리티에 막혀 @PostMapping("/header/search") 로 가지 못하고
"/" 주소로 튕겨져 버린다.
당연한거지만 잊었다가 한참을 "맞.왜.틀." 시전했다..
요약
1. Json 타입 쓸거면 Dto타입으로 받자 알아서 잘 매칭해준다.
2. 보낼 주소를 시큐리티가 막고 있진 않는지 잘 체크하자.
728x90
'JQuery' 카테고리의 다른 글
Uncaught TypeError: $(...).each(...).done is not a function (0) | 2022.02.22 |
---|---|
jquery를 가져올때 (난 cdn) slim으로 가져왔다. ajax미지원 (0) | 2022.02.22 |
$ajax의 Uri 변수 경로 (0) | 2022.02.21 |
[ajax]데이터 전송(체크박스 데이터 등 배열 형태로 데이터 전송) (0) | 2022.02.10 |
JQuery(생활코딩 편) (0) | 2022.02.07 |
댓글