init
This commit is contained in:
@@ -68,7 +68,16 @@ export default function AiNewsPage({ onNavigate }) {
|
||||
setNewsHasMore(false);
|
||||
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 : [];
|
||||
// 서버는 보통 최신이 먼저 오므로, UI를 "아래가 최신" 형태로 유지하려고 reverse 유지
|
||||
const items = rawItems.slice().reverse();
|
||||
@@ -104,7 +113,9 @@ export default function AiNewsPage({ onNavigate }) {
|
||||
}
|
||||
return nextOffset;
|
||||
} catch (e) {
|
||||
setNewsError('인사이트 데이터를 불러오지 못했습니다. (네트워크 오류)');
|
||||
// e.g. "Failed to fetch" (mixed content/SSL/DNS 등)
|
||||
const msg = e?.message ? ` (${e.message})` : '';
|
||||
setNewsError(`인사이트 데이터를 불러오지 못했습니다. (네트워크 오류)${msg}`);
|
||||
setNewsHasMore(false);
|
||||
return null;
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user