>
Next.jsでWebサイトを開発中に "SyntaxError: Unexpected token < in JSON at position 0" というエラーが発生しました。このエラーはJSON形式として正しくない時に発生します。
APIでデータを取得する時に発生しました。
import { NextRequest, NextResponse } from 'next/server';
export async function GET(req: NextRequest) {
const ip = (req.headers.get('x-forwarded-for') ?? '127.0.0.1').split(',')[0];
return NextResponse.json({ ip });
}
const Page = async () => {
const response = await fetch(`${process.env.NEXT_PUBLIC_URL}/api/ip`);
if (!response.ok) {
throw new Error('Failed to fetch data');
}
const result = await response.json();
// ...
サーバーコンポーネントからAPIにアクセスしていますが、このコードはサーバーコンポーネントではなく、クライアントコンポーネントからアクセスするものです。
サーバーコンポーネントとクライアントコンポーネントの違いについて把握しておかないと、エラーの原因を特定しにくくなります。しっかり学んでおきたいです。