Я пытаюсь сделать GET-запрос к общедоступному API, однако у меня нет заголовка «Access-Control-Allow-Origin» в запрашиваемом ресурсе - PullRequest
2 голосов
/ 30 мая 2019

Я буквально только что создал новый проект и проложил один маршрут:

Route::get('/getSummoner', 'RiotController@getSummoner');

который выполняет эту функцию:

public function getSummoner(){

$get = file_get_contents("https://na1.api.riotgames.com/lol/summoner/v4/summoners/by-name/RiotSchmick?api_key=");
$result = json_decode($get);

return response()->json([
    'result' => $result,
], 201);

}

и на внешнем интерфейсе я получаю следующую ошибку:

Access to XMLHttpRequest at 'url' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Я понимаю, что это происходит, когда я делаю запрос на домен, отличный от того, на котором находится моя страница, но, поскольку API не мой, я не могу сделать запрос с того же домена, могу ли я?

Ответы [ 2 ]

0 голосов
/ 31 мая 2019

CORS отключен по умолчанию на любых сайтах в целях безопасности. Вам нужно установить barryvdh / laravel-cors, чтобы разрешить CORS.

composer require barryvdh/laravel-cors

после установки вам нужно запустить это в терминале / командной строке

php artisan vendor:publish --provider="Barryvdh\Cors\ServiceProvider"

затем добавьте HandleCors в свои группы промежуточного программного обеспечения, в вашем случае добавьте его в промежуточное программное обеспечение API

    protected $middlewareGroups = [
    'web' => [
       // ...
    ],

    'api' => [
        // ...
        \Barryvdh\Cors\HandleCors::class,
    ],
];
0 голосов
/ 31 мая 2019

Это сообщение указывает, что их API не позволяет вашему сайту получить к нему доступ. Возможно, он позволяет вам получить доступ к нему через Почтальон, прямое посещение сайта с помощью URL-адреса или каким-либо другим прямым способом ... но вам нужен заголовок Access-Control-Allow-Origin, чтобы специально разрешить доступ к вашему веб-домену (что в данном случае кажется быть внутренним для вас), чтобы иметь к нему доступ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...