Laravel Pre-Flight CORS

У меня проблема с 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 перед полетом?

0

Решение

У меня была такая же проблема, я решил ее, установив заголовки в файл .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>
-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]