Доступ к Rest API с использованием JWT работает с Почтальоном, но не работает с Axios - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть Api отдых с Laravel, защищенный JWT. Имя входа работает правильно, однако при использовании токена носителя, возвращенного именем входа, я получаю сообщение об ошибке:

Доступ к XMLHttpRequest по адресу http: //api-laravel3.test/api/movies Происхождение 'http: // localhost: 8080' было заблокировано политикой CORS: Ответ на запрос предварительной проверки не проходит проверку контроля доступа: Нет статуса HTTP ok.

Доступ почтальона через предъявителя Токен работает правильно. Проблема возникает с Ax ios

     var token = localStorage.getItem('user-token');

      axios.get('http://api-laravel3.test/api/movies', { 
        headers:{
          'Content-Type': 'application/json',
          'Authorization': 'Bearer '+token,
        }
      }).then(function (response) {
        console.log('OK ' + response.status);
        return response.data
      })
      .catch(function (error) {
          console.log('Error: ' + error.response );
          //return Promise.reject(error);
      });

1 Ответ

0 голосов
/ 08 апреля 2020

Полагаю, вы можете решить свою проблему, добавив эти строки в свой /public/index.php. Но это не элегантно, если вы не возражаете.

header('Access-Control-Allow-Origin: *');  
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header("Access-Control-Max-Age", "3600");
header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token');
header("Access-Control-Allow-Credentials", "true");

Для лучшего решения вы можете создать новое промежуточное ПО для вашего приложения Laravel. Вы должны посмотреть на этот ответ, чтобы узнать больше: { ссылка }

...