Laravel Pre-Flight CORS - PullRequest
       10

Laravel Pre-Flight CORS

0 голосов
/ 21 сентября 2018

У меня проблема с Laravel CORS.Я установил barryvdh/laravel-cors комплект со следующим файлом конфигурации:

'supportsCredentials' => false,
'allowedOrigins' => ['*'],
'allowedOriginsPatterns' => [],
'allowedHeaders' => ['*'],
'allowedMethods' => ['PUT', 'GET', 'OPTIONS', 'POST', 'DELETE'],
'exposedHeaders' => [],
'maxAge' => 0,

Я даже добавил следующие строки в мой AppServiceProfider.php файл

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: Authorization,Content-Type,X-Requested-With,X-CSRF-TOKEN');
header('Access-Control-Allow-Methods: POST,GET,PUT,OPTIONS,DELETE');

И все еще не могусделать запрос PUT на Firefox.Я получаю сообщение об ошибке «Политика одинакового происхождения» - метод не найден в заголовке CORS «Access-Control-Allow-Methods».

Что странно: как видите, я установил заголовок Allow-Methods равным POST,GET,PUT,OPTIONS,DELETE, но каждый браузер говорит, что он установлен на *:

Access-Control-Allow-Headers: Authorization,Content-Type,X-Requested-With,X-CSRF-TOKEN
Access-Control-Allow-Methods:*
Access-Control-Allow-Origin: *

Что еще страннее - когда я делаю тот же запрос в Postman, заголовки выглядят нормально:

access-control-allow-headers →Authorization,Content-Type,X-Requested-With,XCSRF-TOKEN
access-control-allow-methods →POST,GET,PUT,OPTIONS,DELETE

Чтонеправильно?Отличается ли обработка запросов перед полетом с помощью Laravel?

1 Ответ

0 голосов
/ 21 сентября 2018

У меня была такая же проблема, я решил ее, установив заголовки в файле .htaccess как

<IfModule mod_rewrite.c>

   #...... other settings here

    Header set Access-Control-Allow-Origin "*"
    Header set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
    Header set Access-Control-Max-Age "1000"
    Header set Access-Control-Allow-Headers "access_token, x-requested-with, Content-Type, Accept-Encoding, Accept-Language, Cookie, Referer"
</IfModule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...