Next.jsサーバーでCORS問題が起きる時の解決方法

Next.jsサーバーでCORS問題が起きる時の解決方法

2022.11.14

この記事は約2 分で読めます

三好アキ プロフィール写真

筆者三好アキ(専門用語なしでプログラミング)

私について詳しくは → 自己紹介

Next.jsサーバーとCORS

Next.jsにコードを書いてVercelにデプロイすると簡単にサーバー機能を実現できるので、非常に便利です。

ここでNext.jsをフロントエンドとバックエンド両方に使っている場合、URLが同じなので特に問題は起きないですが、もしURLが別のフロントエンドからリクエストをする場合にはCORSの問題が起きます。

この解決のためには、下記のようにheadersに関する設定をnext.config.jsに追加してデプロイしましょう(ここではVercelへのデプロイを想定)。

// next.config.js

const nextConfig = {
  reactStrictMode: true,
  // ⬇追加
  async headers() {
    return [
      {
        "source": "/(.*)",
        "headers": [
          { "key": "Access-Control-Allow-Credentials", "value": "true" },
          { "key": "Access-Control-Allow-Origin", "value": "*" },
          { "key": "Access-Control-Allow-Methods", "value": "GET,OPTIONS,PATCH,DELETE,POST,PUT" },
          { "key": "Access-Control-Allow-Headers", "value": "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version" }
        ]
      }
    ]
  },
  // ⬆追加
}

module.exports = nextConfig

Next.jsについてもっとくわしく知りたい方は、下記教本を参考にしてください。

最新のNext.js Appルータとともに、API(Route Handlers)、Supabase、JWT、Cloudinaryなどを使って本格的なフルスタックアプリを開発する方法を、ビギナー向けにわかりやすく紹介しています(2026年時点で最新のNext.jsバージョン16使用)。

Next.jsでつくるフルスタックアプリ 前編(バックエンド開発)with Supabase

Next.jsでつくるフルスタックアプリ

【最新のNext.jsバージョン16をつかった本格アプリの開発手法がわかる入門書。Route Handlers使用】

Amazon Amazonで見る

CORSの解決後も、Next.jsの開発全体の流れを把握しておくと役立ちます。

RSC・Server Actions・デプロイ方法までまとめたNext.jsの入門ガイドはこちらです▼


image

⚫︎ monotein.base.shop/p/00005