XMLHttpRequest не может загрузить http: // myapi / api / rating . Ответ на запрос перед полетом не проходит проверку контроля доступа. Нет заголовка «Access-Control-Allow-Origin» на запрошенном ресурсе. Поэтому исходный адрес http: // localhost: 8104 'не допускается. В ответе был код статуса HTTP 403.
Я не могу понять, почему я не могу делать запросы CORS. Я установил здесь промежуточное ПО, добавив его в глобальное ядро http, но он все еще не работает. Пытался создать собственное промежуточное ПО, предлагаемое с помощью предложений stackoverflow, но это также не сработало. Также попробовал добавить группу маршрутов. Наконец, я попытался настроить заголовки ответов вручную в действии запроса. Я действительно застрял – помощь приветствуется!
См. Код: https://gist.github.com/KerryRitter/0d7ababb7b9eb8d54f0ae55add9704a1
https://github.com/barryvdh/laravel-cors
Пакет laravel-cors позволяет отправлять заголовки совместного использования ресурсов Cross-Origin с конфигурацией промежуточного программного обеспечения Laravel.
Особенности
Обрабатывает запросы перед запросом к полетам CORS Добавляет заголовки CORS к вашим ответам
Недавно я столкнулся с этой ошибкой в laravel 5.4, я отправлял запрос на отправку ajax на свой собственный сайт и все еще получал эту ошибку, я столкнулся с этой ошибкой из-за двух причин, чтобы быть точным,
error: XMLHttpRequest cannot load https://[mydomain].com/quote/short. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://[mydomain].com' is therefore not allowed access.
Причиной ошибки выше было то, что я отправлял запрос на http-домен из домена https, поэтому, когда я изменил его на https, ошибка была решена, затем снова я получил ту же ошибку по той же причине, которая была причиной этого время, домен имел www.
и запрошенный не сделал, после того, как я добавил www.
для обоих он работал как шарм.
И для запросов на перекрестный поиск я использовал следующее решение:
Создайте промежуточное ПО (cors в моем случае) с кодом ниже
return $next($request) ->header('Access-Control-Allow-Origin', '*') ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
Вставьте промежуточное содержимое в routeMiddleware массив в kernal.php
'cors' => \App\Http\Middleware\Cors::class,
Добавить промежуточное ПО к уважаемому маршруту
Route::get('myRoute', ['middleware' => 'cors' , 'uses'=> 'MyController@Action']
Надеюсь, что этот ответ поможет кому-то столкнуться с той же проблемой, что и я.
Решено: я не добавил «Barryvdh \ Cors \ ServiceProvider :: class» в массив поставщиков config / app.php.