<script src="https://code.jquery.com/jquery-3.7.1.min.js"
integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
<script>
let paper_title;
let receiver;
function create() {
console.log('onclick!');
var paper_title = $("#paper-title").val();
var receiver = $("#receiver").val();
let param = {
"papertitle": paper_title,
"paperreceiver": receiver
};
console.log(param);
// 2. ajax 함수 이용해서 api 호출, success 응답 호출 해보기
$.ajax({
type: 'post', // 타입 (get, post, put 등등)
url: 'http://localhost:8080/api/rolling-papers', // 요청할 서버url
async: true, // 비동기화 여부 (default : true)
dataType: 'json', // 데이터 타입 (html, xml, json, text 등등)
data: JSON.stringify(param),
contentType: "application/json",
success: function (data) { // 결과 성공 콜백함수
console.log(data);
}
});
}
</script>
ajax를 사용하여 springboot로 만든 api에 제목, 받을 대상의 값을 post로 넘겨 저장하려고 했는데
제목과 받을 대상을 입력해도
api에는 값이 들어가지 않는 오류가 발생했습니다.
알고보니
param
의 key값과 api의 변수명이 동일해야 해당 값이 제대로 들어가는 것이었습니다.
param
의 제목 변수는 papertitle
이었지만 api에서의 제목 변수는 title
이었기 때문에 값이 제대로 넘어가지 않았던 겁니다.
paperreceiver
와 receiver
도 동일한 이유입니다.
let param = {
"title": paper_title,
"receiver": receiver
};
param
의 key를 api와 동일하게 title
, receiver
로 변경해주고
제목과 받을 대상에 값을 입력해주면
이렇게 값을 가져와 저장한 것을 확인할 수 있었습니다.
사실 springboot로 api를 만들어서 활용해본 것이 이번이 처음이라고 할 수 있는데 에러를 해결하는 과정에서 api를 조금 다룰 수 있게 된 것 같아 개인적으로 성장했다고 느꼈습니다.
또한 api의 변수명과 데이터를 넘겨주는 키값이 동일해야 한다는 사실을 깨닫게 되었습니다.