質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

CORS

CORSとはCross-Origin Resource Sharingの頭文字をとったもので、ブラウザがオリジン以外のサーバからデータを取得するシステムのことです。

Q&A

解決済

2回答

3335閲覧

Nuxt.jsとLaravelのAPIでAjax通信した際のCORSエラーが解消できない

RyoS_

総合スコア4

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

CORS

CORSとはCross-Origin Resource Sharingの頭文字をとったもので、ブラウザがオリジン以外のサーバからデータを取得するシステムのことです。

0グッド

1クリップ

投稿2021/05/01 12:40

前提・実現したいこと

Nuxt.jsとLaravelのAPI通信ができるようにしたい。

現在Nuxt.jsとLaravelで簡単なTodoリストを作っています。
Nuxt.jsからAxiosでAPIを叩いた時、CORSエラーが発生しました。

Github

発生している問題・エラーメッセージ

Access to XMLHttpRequest at 'http://localhost:10080/api/tasks/create' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Credentials' header in the response is '' which must be 'true' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.

デベロッパーツールのNetworkのエラーは以下の2枚になります。

エラーメッセージ1

エラーメッセージ2

試したこと

①DockerのNginxのdefalt.confファイルを確認

default.confにCORSの記述がないことを確認済みです。
LaravelでCORSが解決できない|teratail

②PostmanでAPIが動くことを確認

githubに写真をあげています

③CORSの対応

こちらの記事を参考に、 CORS を作成し、カーネルに追加し、ルートを編集しました。

ただこれでもうまくいかなかったため、以下の記事を参考に、 プリフライトリクエストにも対応した形で変更しました。

ただ変わらずエラーが発生します。

それでは、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Laravel7以上なら最初からCORS対応している。
単に最初からlaravel-corsをインストールしているだけ&Laravel6でも使えるのでこれを使えばいい。
https://github.com/fruitcake/laravel-cors

https://github.com/laravel/laravel/blob/ca7f3866666d1ec724a4c72389d8f096201d788a/app/Http/Kernel.php#L19

https://github.com/laravel/laravel/blob/8.x/config/cors.php

投稿2021/05/01 14:39

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RyoS_

2021/05/01 23:59 編集

ご回答ありがとうございます。 Laravel6以降はmiddlewareで作成するのではなく、パッケージで対応するんですね。 参考になりました。
guest

0

ベストアンサー

以下のエラーメッセージの意味ですが、

Access to XMLHttpRequest at 'http://localhost:10080/api/tasks/create' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Credentials' header in the response is '' which must be 'true' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.

以下のレスポンスヘッダがないという意味です。これを追加する必要があります。

Access-Control-Allow-Credentials: true

また、それ以外にも、現在は以下のヘッダがでていますが、

Access-Control-Allow-Headers: Accept, X-Requested-With, Origin, Content-Type

X-XSRF-TOKENが足りません。余計なものもあるので、必要なもののみ記載すると以下が必要です。

Access-Control-Allow-Headers: Content-Type, X-XSRF-TOKEN

投稿2021/05/01 14:02

ockeghem

総合スコア11701

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

RyoS_

2021/05/02 00:01

ご回答ありがとうございます。 上記内容で解決いたしました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問