前提・実現したいこと
Nuxt.jsとLaravelのAPI通信ができるようにしたい。
現在Nuxt.jsとLaravelでLIFFアプリを作っています。
Nuxt.jsからAxiosでAPIを叩いた時、CORSエラーが発生しました。
発生している問題・エラーメッセージ
'https://deploy-preview-1--line-form-frontend.netlify.app'から'https://29500ee86135.ngrok.io/api/'のXMLHttpRequestへのアクセスがCORSポリシーによってブロックされている。
リクエストされたリソースに'Access-Control-Allow-Origin'ヘッダが存在しない。
Access to XMLHttpRequest at 'https://29500ee86135.ngrok.io/api/' from origin 'https://deploy-preview-1--line-form-frontend.netlify.app' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
試したこと
①PostmanでAPIが動くことを確認
問題なく取得できました。
②CORSの対応
以下はnuxt.config.js
です。
proxy: { '/api': environment === 'development' ? process.env.API_URL : 'https://www.example.org', }, axios: { baseURL: process.env.API_URL, browserBaseURL: process.env.API_BROWSER_URL, credentials: true, },
以下は.env
です。
API_URL=http://web/api API_BROWSER_URL=https://29500ee86135.ngrok.io/api
バックエンド側も以下のように設定しています。
<?php namespace App\Http\Middleware; use Closure; class Cors { public function handle($request, Closure $next) { return $next($request) ->header('Access-Control-Allow-Origin', 'https://deploy-preview-1--line-form-frontend.netlify.app') ->header('Access-Control-Allow-Methods', 'GET, POST') ->header('Access-Control-Allow-Headers', 'Content-Type, X-XSRF-TOKEN') ->header('Access-Control-Allow-Credentials', 'true'); } }
何故CORSエラーが発生するのでしょうか?
大変恐縮ですが、ご教授お願いいたします。
追記
レスポンスヘッダーに関して
回答1件
あなたの回答
tips
プレビュー