This commit is contained in:
dsyoon
2025-12-27 16:58:28 +09:00
parent 78a89c000c
commit 2827880351

View File

@@ -68,7 +68,16 @@ export default function AiNewsPage({ onNavigate }) {
setNewsHasMore(false); setNewsHasMore(false);
return null; return null;
} }
const data = await res.json(); let data;
try {
data = await res.json();
} catch (e) {
// Apache SPA rewrite(.htaccess 포함)가 API까지 잡아먹으면 index.html(HTML)이 내려올 수 있음
const ct = res.headers.get('content-type') || '';
setNewsError(`인사이트 API 응답이 JSON이 아닙니다. (content-type: ${ct || 'unknown'}) Apache rewrite/.htaccess에서 /community 제외가 필요합니다.`);
setNewsHasMore(false);
return null;
}
const rawItems = Array.isArray(data.items) ? data.items : []; const rawItems = Array.isArray(data.items) ? data.items : [];
// 서버는 보통 최신이 먼저 오므로, UI를 "아래가 최신" 형태로 유지하려고 reverse 유지 // 서버는 보통 최신이 먼저 오므로, UI를 "아래가 최신" 형태로 유지하려고 reverse 유지
const items = rawItems.slice().reverse(); const items = rawItems.slice().reverse();
@@ -104,7 +113,9 @@ export default function AiNewsPage({ onNavigate }) {
} }
return nextOffset; return nextOffset;
} catch (e) { } catch (e) {
setNewsError('인사이트 데이터를 불러오지 못했습니다. (네트워크 오류)'); // e.g. "Failed to fetch" (mixed content/SSL/DNS 등)
const msg = e?.message ? ` (${e.message})` : '';
setNewsError(`인사이트 데이터를 불러오지 못했습니다. (네트워크 오류)${msg}`);
setNewsHasMore(false); setNewsHasMore(false);
return null; return null;
} finally { } finally {