첫번째 문제
✔︎ 문제 원인
✔︎ 해결 방법
기존 방식
| message.js
// 쪽지 상세 읽기
function getMessage(messageId) {
let token = Cookies.get('token');
$.ajax({
type: 'GET',
url: process.env.BACKEND_HOST + '/message/' + messageId,
beforeSend: function (xhr) {
xhr.setRequestHeader('Content-type', 'application/json');
xhr.setRequestHeader('Authorization', 'Bearer ' + token);
},
data: {},
success: function (response) {
let message = response;
let title = message['title'];
let content = message['content'];
$('#title').html(title);
$('#content').html(content);
window.openDetailMessageModal();
}
});
}
변경 후
// 보낸 쪽지 리스트 불러오기
function getCreateMessageList() {
・・・
$('#message-list').append(messagesHTML);
$('#title-send').text(title);
$('#content-send').text(content); // 모달의 id값(#content-send)에 Dto로 추가적으로 받아온 정보를 넘겨줌
・・・
}
// 쪽지 상세 읽기
function getMessage(messageId) {
let token = Cookies.get('token');
$.ajax({
type: 'GET',
url: process.env.BACKEND_HOST + '/message/' + messageId,
beforeSend: function (xhr) {
xhr.setRequestHeader('Content-type', 'application/json');
xhr.setRequestHeader('Authorization', 'Bearer ' + token);
},
data: {},
success: function (response) {
let message = response;
localStorage.setItem('message', JSON.stringify(message));
let member = message['member'];
let sender = message['sender'];
let title = message['title'];
let content = message['content'];
if (member == sender) {
window.openSendDetailMessageModal();
$('#title-send').html(title);
$('#content-send').html(content);
}
else {
window.openReadDetailMessageModal();
$('#title-read').html(title);
$('#content-read').html(content);
$('input[id=receiver_createMessage]').val(sender);
}
}
});
}
두번째 문제
✔︎ 문제 원인
GET 메소드에서 쪽지 상세읽기를 할 때 읽음상태는 무조건 변경됨)되지 않게하기 위해서 쪽지 상세읽기 GET메소드를 거치지 않고id값에 직접적으로 data(title, content) 를 보내줬던 방식을 사용했었음.messageId 값에 맞춰 알맞게 들어가는 것이 아닌 리스트의 첫번째 쪽지 id의 data만 중복해서 나오는 에러 확인sender == receiver일 때, 읽음상태가 변경되지 않도록 분기처리를 하면, 사용자가 본인에게 보낸 쪽지를 확인해도 읽음상태가 변경되지 않는 문제가 있음✔︎ 문제 해결
id값에 직접적으로 data를 보내주는 방식은 더이상 사용하지 않음