되자!백엔드개발자
[JavaScript] Post방식으로 int 값을 null로 보내면 error발생 본문
ajax로 장바구니 구현 중에 로그인을 한 경우에는 제대로 작동하던 코드가 로그인을 하지 않았을때는 Controller에도 들어가지 못하는 400에러가 발생했다.
결론부터 말하면 Post방식으로 int값을 null로 보냈기 때문이었다.
const form = {
bookId : '${book.bookId}',
bookCount: '',
memberId : '${member.memberId}'
}
$.ajax({
url: '/cart/add',
type: 'POST',
data: form,
success: function(result){
console.log("ajax result: "+result);
if(result == "0"){
alert("장바구니에 추가를 하지 못하였습니다.");
} else if(result == "1"){
alert("장바구니에 추가되었습니다.");
} else if(result == "2"){
alert("장바구니에 이미 존재합니다.");
} else if(result == "5"){
alert("로그인이 필요합니다.");
location.href="/member/login";
}
}
});
로그인을 한 경우라면 jsp가 session에서 memberId값을 찾아서 form에 넣어주고 ajax로 전송된다..
하지만 로그아웃된 경우라면 memberId값을 찾지 못하고 null값이 전송되게 된다.
String값이라면 문제가 되지 않지만 int 타입이라면 Controller에서 받아들이지 못하고 400에러가 발생하게 된다.
따라서 프론트 단에서 int타입 변수가 null일 경우를 판단하여 임의의 값을 넣어 전송시켜주어야한다.
아래 코드 넣어서 해결~
// post로 int값을 공백 넣어주면 에러가 발생하므로 임의의 값 넣기
if(form.memberId === ""){
form.memberId = 0;
}
'개발공부 > ERROR' 카테고리의 다른 글
[ERROR] Jackson 직렬화 중 class 못찾는 문제 (0) | 2023.06.30 |
---|---|
[ERROR] Docker ps, build 등 여러 명령이 실행이 안되는 에러 (0) | 2023.06.28 |
[Spring] dynamic web module 3.1 requires java 1.7 or newer Error (0) | 2023.01.16 |
[ERROR] SSE core task scheduler startup problem in eclipse 에러해결 (0) | 2022.12.10 |
[Web] Server Tomcat v9.0 Server at localhost failed to start. 에러 (0) | 2022.12.04 |