조회수 비정상 증가 방지 로직 추가
eapim-portal CI / build (push) Waiting to run
eapim-portal Test / test (push) Waiting to run

- sessionStorage 활용 중복 증가 억제
- CSRF 토큰 기반 조회수 증가 API 호출 처리
This commit is contained in:
Rinjae
2026-07-13 11:37:06 +09:00
parent a97378b84d
commit 6c5ba6765d
@@ -0,0 +1,35 @@
(function () {
'use strict';
// 조회수 비정상 증가 억제: sessionStorage 로 한 세션 내 중복 증가 방지.
var container = document.querySelector('.inquiry-detail-container[data-inquiry-id]');
if (!container) return;
var inquiryId = container.getAttribute('data-inquiry-id');
if (!inquiryId) return;
var viewedKey = 'inquiry_viewed_' + inquiryId;
if (sessionStorage.getItem(viewedKey)) {
return; // 이미 이번 세션에서 조회 → 증가하지 않음
}
function getCsrfToken() {
// 세션 기반 CSRF: 쿠키 대신 <meta name="_csrf">에서 토큰을 읽는다.
var meta = document.querySelector('meta[name="_csrf"]');
return meta ? meta.getAttribute('content') : '';
}
fetch('/inquiry/' + encodeURIComponent(inquiryId) + '/view', {
method: 'POST',
credentials: 'same-origin',
headers: { 'X-XSRF-TOKEN': getCsrfToken() }
})
.then(function (res) {
if (res.ok) {
sessionStorage.setItem(viewedKey, 'true');
}
})
.catch(function (err) {
console.error('[inquiry-view] increment error', err);
});
})();