0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravelの本番環境で出たcorsエラーとその解決法まとめ

Last updated at Posted at 2024-02-04

なぜこの記事を書いたか

自分は大学生で都内の会社でインターンをしているのですが、本番環境にデプロイする際に必ずと言っていいほど毎回corsエラーに遭遇し、最終的には「はいまたcorsね」みたいな感じになってました。同じ失敗を二度としないためにも備忘録も兼ねてこの記事を書いています。

webアプリの構成

名称未設定.png

バックエンド

Laravel

フロントエンド

Vue.js

サーバサイド

Docker, ECS on Fargate, ALB, nginx

データベース

RDS

corsエラーの原因と修正方法

nginxのDockerfileで静的ファイルをLaravelのpublic/buildに置きました。
静的ファイル(フロントのページ)の表示は、Laravelを介さずnginxにより処理されるため、Laravelのconfig/cors.phpでいくらcorsの設定しても意味がなく、nginxの設定ファイルでcorsヘッダを付与しなければならない。
例えば、nginx/default.confに以下を追記しました:

    add_header 'Access-Control-Allow-Origin' '*' always;
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
    add_header 'Access-Control-Allow-Headers' 'X-Requested-With, Content-Type' always;

まとめ

鬼初歩的な記事で申し訳ないですが、システムの構造をきちんと理解しておくのが重要だと思いました。
すぐにqiitaなどで調べて解決すれば良いですが、そう簡単にいかない場合が多いのでどのページがどこから呼び出されているか、などを意識して自力で解決できるようになりたいものです。

0
2
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?