Проблема с Spatie / Laravel cors в продакшене

Этот выпуск корса станет моей смертью. В любом случае я пытаюсь решить, почему пакет spatie / cors работает локально, но не работает в производственной среде. Если у кого-то есть опыт с этим, я был бы признателен за помощь !! Я пытаюсь получить доступ к своей серверной части, но получаю сигнал тревоги: my url has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request


person TJ Weems    schedule 21.12.2018    source источник
comment
Возможно, у вас есть что-то вроде перенаправления HTTP - ›HTTPS?   -  person ceejayoz    schedule 21.12.2018
comment
честно говоря не уверен. Сертификат был создан с использованием LetsEncrypt, и он не дал мне никаких подробностей о сертификате.   -  person TJ Weems    schedule 21.12.2018
comment
Проблема не в сертификате или Let's Encrypt. Это может быть конфигурация вашего веб-сервера или приложение, пытающееся перенаправить запросы с HTTP на HTTPS. Взгляните на сетевую панель в инструментах разработчика вашего браузера - я подозреваю, что вы увидите там OPTIONS запрос, получающий ответ 301/302.   -  person ceejayoz    schedule 21.12.2018
comment
Я ничего не получаю на вкладке сети моей консоли. когда я обновляюсь, он просто показывает загруженные ресурсы.   -  person TJ Weems    schedule 21.12.2018
comment
Если консоль показывает неудавшийся запрос, на вкладке сети должно быть что-то. Возможно, вы можете поделиться URL-адресом?   -  person ceejayoz    schedule 21.12.2018
comment
@ceejayoz, aewcpa.traxit.io   -  person TJ Weems    schedule 21.12.2018
comment
@TJWeems пытается вставить в HTML-заголовок вашего основного приложения этот <meta name="csrf-token" content="{{ csrf_token() }}">   -  person JsWizard    schedule 22.12.2018
comment
@ Магнитный, вы имеете в виду, что мое внешнее приложение отправляет запросы? Должен ли я также включить его в заголовок моей Axios?   -  person TJ Weems    schedule 22.12.2018
comment
@TJWeems, да, попробуйте, если вы используете бэкэнд Laravel. Вы можете добиться успеха в локальном режиме, но не в продакшене, потому что это другой браузер. Сначала ознакомьтесь с этой ссылкой, developer.mozilla.org/en-US / docs / Web / HTTP / CORS и проверьте правильность ссылки на серверную часть во внешнем интерфейсе, также проверьте эту ссылку github.com/spatie/laravel-cors, если вы его не добавляли. Удачи ~ :)   -  person JsWizard    schedule 23.12.2018


Ответы (1)


Ваш URL https://aewcpa.traxit.pro/api/account возвращает 301 редирект на https://traxit.pro/api/account для запроса CORS OPTIONS, который вызывает эту проблему.

Вы можете увидеть это в действии в сетевой консоли вашего браузера или с помощью cURL:

введите здесь описание изображения

curl -I 'https://aewcpa.traxit.pro/api/account' -X OPTIONS -H 'Access-Control-Request-Method: GET' -H 'Referer: https://aewcpa.traxit.io/login' -H 'Origin: https://aewcpa.traxit.io'

HTTP/2 301 
server: nginx/1.15.6
date: Fri, 21 Dec 2018 18:14:36 GMT
content-type: text/html
content-length: 169
location: https://traxit.pro/api/account
person ceejayoz    schedule 21.12.2018
comment
так это проблема конфигурации на моем сервере nginx или в коде моего проекта? Извините, у меня просто нет большого опыта работы с проблемами сети - person TJ Weems; 21.12.2018
comment
HTML-код перенаправления, возвращаемый https://aewcpa.traxit.pro/api/account, действительно выглядит так, как будто это nginx выполняет перенаправление для меня. Перенаправления Laravel выглядят иначе. - person ceejayoz; 21.12.2018
comment
Хорошо, я использую forge для размещения сайта, который фактически использует цифровой океан. Есть ли в цифровом океане варианты для сервера nginx для обработки таких запросов? - person TJ Weems; 21.12.2018
comment
Я не очень хорошо знаком с Forge, но, насколько я понимаю, он настраивает для вас такие вещи, как nginx. Я подозреваю, что что-то происходит там, где он настроен на канонизацию ваших URL-адресов на основе значения APP_URL. - person ceejayoz; 21.12.2018
comment
Да я не знаю. Я просто не понимаю, почему это будет работать в моей местной среде, а не в продакшене. Я попытался явно разместить URL-адрес в моем источнике доступа без изменений. - person TJ Weems; 21.12.2018
comment
Я добавил *.myurl.com в файл конфигурации nginx, расположенный в кузнице laravel, который решил проблему с постоянным перемещением 301. Теперь я пытаюсь выяснить сигнал тревоги 405, лол - person TJ Weems; 24.12.2018