>
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にアクセスしていますが、このコードはサーバーコンポーネントではなく、クライアントコンポーネントからアクセスするものです。
サーバーコンポーネントとクライアントコンポーネントの違いについて把握しておかないと、エラーの原因を特定しにくくなります。しっかり学んでおきたいです。
関連記事