JSON data를 ajax로 전달할 때는 두 가지가 중요하다.
1. contentType: "application/json"
2. data: JSON.stringify(itemDto)
addHtml 함수에서 addproduct 함수로 넘어온 파라미터 값 itemDto는 자동으로 JSON 형태로 변환되기 때문에 데이터를 받을때 다시 문자열 형태로 바꿔주어야 한다.
function addHTML(itemDto) {
return `<div class="search-itemDto">
<div class="search-itemDto-left">
<img src="${itemDto.image}" alt="">
</div>
<div class="search-itemDto-center">
<div>${itemDto.title}</div>
<div class="price">
${numberWithCommas(itemDto.lprice)}
<span class="unit">원</span>
</div>
</div>
<div class="search-itemDto-right">
<img src="images/icon-save.png" alt="" onclick='addProduct(${JSON.stringify(itemDto)})'>
</div>
</div>`
}
function addProduct(itemDto) {
$.ajax({
type: "POST",
url: '/api/products',
contentType: "application/json",
data: JSON.stringify(itemDto),
success: function (response) {
$('#container').addClass('active');
targetId = response.id;
}
})
}