Laravel 7 Паспорт: заблокирован политикой CORS - PullRequest
0 голосов
/ 02 апреля 2020

Когда я делаю следующий топор ios запрос на мой Laravel 7.3 Паспорт API:

let url = 'http://laravel.test/oauth/token'

let params = {
  client_id:  4,
  client_secret: 'FBkMiLI8ecdb4A8OhLRDGS1SasZP5NT7i9Qpp7bP',
  grant_type: 'password',
  username: 'me@home.com',
  password: '1qaz@WSX',
  scope: '*'
}

let headers = {
    'Access-Control-Allow-Origin': '*',
    'Access-Control-Allow-Methods': 'HEAD, GET, POST, PUT, PATCH, DELETE, OPTIONS',
    'Access-Control-Allow-Headers': 'Content-Type'
  }

axios.post(url, params, headers)
.then(response => {
      this.access_token = response['data']['access_token'];
      this.get_users_data()
  })
.catch(response => {
// eslint-disable-next-line
    console.log(response)
});

Я получаю эту ошибку в моем javascript console:

Доступ к XMLHttpRequest по адресу 'http://laravel.test/oauth/token' из источника 'http://localhost: 3000 ' заблокирован политикой CORS: Ответ на запрос предварительной проверки не проходит проверку контроля доступа: в запрашиваемом ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

Также config/cors.php в Laravel 7.3 настроен на разрешение чего угодно (по умолчанию):

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Cross-Origin Resource Sharing (CORS) Configuration
    |--------------------------------------------------------------------------
    |
    | Here you may configure your settings for cross-origin resource sharing
    | or "CORS". This determines what cross-origin operations may execute
    | in web browsers. You are free to adjust these settings as needed.
    |
    | To learn more: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
    |
    */

    'paths' => ['api/*'],

    'allowed_methods' => ['*'],

    'allowed_origins' => ['*'],

    'allowed_origins_patterns' => [],

    'allowed_headers' => ['*'],

    'exposed_headers' => [],

    'max_age' => 0,

    'supports_credentials' => false,

];

Что не так в моем запросе?

1 Ответ

1 голос
/ 02 апреля 2020

С вашим запросом все в порядке. Ваш ресурс API имеет политику CORS , которая ограничивает доступ доменов к ресурсам. Получаемая ошибка говорит о том, что у ресурса нет заголовка CORS, разрешающего доступ из вызывающего домена.

Вам необходимо установить политику CORS для внесения в белый список вашего домена: http://localhost:3000. Вы можете найти эту статью, Обработка CORS в Laravel приложении , полезную:

Недавно мы выпустили laravel -Cors. Этот пакет может добавить необходимые заголовки CORS вашего Laravel приложения.

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