[JavaScript] JSON.stringify :: Spring @RequestBody ajax 호출

동민·2021년 7월 29일
0

JSON.stringify(obj)
객채 내, String, 배열, 객체 등 모든 값을 String 문자열로 바꾸어줌

var obj1 = { name: 'kim', age: 27 };
var obj2 = { name: 'lee', age: 27 };

JSON.stringify(obj1) // '{"name":"kim","age":27}'
JSON.stringify(obj2) // '{"name":"lee","age":27}'

객체 단위로 비교할 때 유용!

if(JSON.stringify(obj1) === JSON.stringify(obj2)){
	... 
}

Spring Rest API 호출 시 활용

ajax 로 Rest API(POST, PUT, DELETE) 호출 시 @RequestBody DTO(Body)에 데이터를 담을 때, JSON.stringify 를 사용하는 것을 추천...

JSON.stringify 를 클라이언트에서 처리하지 않았을 때,
서버 단에서 CORS 처리를 하였더라도 파라미터가 Body에 담겨지지 않아 엉뚱하게 CORS 가 발생하기도 하더라...

클라이언트

$.ajax({
    type: 'post',
    contentType: 'application/json',
    data: JSON.stringify({
        'name' : 'kim',
        'age' : 27
    }),
    url: '/test',
    xhrFields: {withCredentials: true},
    success: function(data) {
    },
    error: function() {
    }
});

Controller

@PostMapping("/test")
public Json<?> test(@RequestBody Dto dto) {
	...		
}
profile
BE Developer

0개의 댓글