現在LaravelでAPIを開発しており、Nuxt側でAPIを叩いた際CORSエラーが出てしまいます。
エラーは以下の通りです。
Access to XMLHttpRequest at 'http://127.0.0.1:8000/api/feed?keyword=%E3%83%AF%E3%83%BC%E3%83%AB%E3%83%89%E3%83%88%E3%83%AA%E3%82%AC%E3%83%BC' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
環境
"laravel/framework": "^8.40"
"nuxt": "^2.15.7"
Access-Control-Allow-Originの設定が必要というのは分かるのですが、以下のようなlaravel8のcorsの設定をしたのですが結果は変わりませんでした。
cors.php
'paths' => ['*'], 'allowed_methods' => ['*'], 'allowed_origins' => ['*'], 'allowed_origins_patterns' => [], 'allowed_headers' => ['*'], 'exposed_headers' => [], 'max_age' => 0, 'supports_credentials' => false,
api.php
Route::apiResource('feed', Testfeedcontroller::class);
MangaController.php
{ $keyword = $request->input('keyword'); $iskeyword = Manga::where('title', 'like', '%'.$keyword.'%')->first(); if (!$iskeyword) { echo 'DBに新しく登録します'; // $options = [ // 'http' => [ // 'method' => 'GET', // 'header' => 'user-agent:MyUserAgent' // ], // ]; $RakutenUrl = "https://app.rakuten.co.jp/services/api/BooksBook/Search/20170404?applicationId=1064175175388514312&title={$keyword}&booksGenreId=001&size=9"; // $json = file_get_contents($RakutenUrl, false, stream_context_create($options)); $json = file_get_contents($RakutenUrl); // dd($json); $json_decode = json_decode($json, true); // dd($json_decode); $res = []; foreach ($json_decode['Items'] as $item) { $title = $item['Item']['title']; $ImageUrl = $item['Item']['largeImageUrl']; $source_url = $item['Item']['itemUrl']; $res[] = [ 'title' => $title, 'ImageUrl' => $ImageUrl, 'itemUrl' => $source_url, ]; } // dd($res); // return $res; foreach ($res as $i) { $manga = new Manga; $manga->title = $i['title']; $manga->img_url = $i['ImageUrl']; $manga->source_url = $i['itemUrl']; $manga->save(); }; $getmanga = Manga::where('title', 'like', '%'.$keyword.'%')->get(); // dd($getmanga); foreach ($getmanga as $m) { $title = $m->title; $ImageUrl = $m->img_url; $source_url = $m->source_url; $result[] = [ 'title' => $title, 'img_url' => $ImageUrl, 'source_url' => $source_url ]; }; // dd($result); return $result; // } } elseif ($keyword) { echo 'DBに登録されています'; // dd($iskeyword); $searchmangas = Manga::where('title', 'like', '%'.$keyword.'%')->get(); // dd($searchmangas); $result2 = []; foreach ($searchmangas as $m) { $title = $m->title; $ImageUrl = $m->img_url; $source_url = $m->source_url; $result2[] = [ 'title' => $title, 'img_url' => $ImageUrl, 'source_url' => $source_url ]; } return result2; } }
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。