Godaddy CORS выпуск - Угловой 7 - Laravel 5 - PullRequest
0 голосов
/ 12 февраля 2019

Я разработал приложение в Angular 7 и API в Laravel 5.7 .

Для выпуска CORS я также установил barryvdh / laravel-cors пакет в Laravel и нормально работающий на локальном.

Но когда я развернул оба этих приложения на одном хостинге Godaddy, то есть Стартовый Linux-хостинг с cPanel

  1. Угловое приложение в главном каталоге public_html
  2. API Laravel в public_html / api каталоге, который указывает на public_html / api / public

API не работают, и я вижу эту ошибку

Access to XMLHttpRequest at 'http://api.example.com/api/documentations?page=1' from origin 'http://example.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request

Я видел много ответов о stackoverflow и других источниках, кажется, ничего не работает для меня.

Я пытался добавить заголовки к .htaccess файлу

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
</IfModule>

, а также напрямую к index.php , но безуспешно.

header('Access-Control-Allow-Origin', '*')

Любая идея или помощь высоко ценится.Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Спасибо @ceejayoz за ваши ценные комментарии и ответ.Я могу найти проблему

У меня есть два .htaccess файла.Для основного домена: один в

public_html/.htaccess

, а другой для субдомена в

public_html/api/public/.htaccess

Один в public_html / .htaccess , имеющий эту строку для защиты файлов внутрикаталог public_html / api из корневого доступа основного домена

RedirectMatch 403 ^/api/.*$

Когда я прокомментировал / удалил эту строку, API начали работать, но файлы в каталоге public_html / api были небезопасны.

Затем для защиты файлов я создал еще один файл в public_html / api / .htaccess и добавил эти строки

RewriteEngine On
RewriteRule !^public/ - [F,NC]

И я достиг и: 1028 * API работают, и файлы внутри public_html / api защищены.

0 голосов
/ 12 февраля 2019

Перенаправление не разрешено для предварительного запроса

Поскольку у вас есть перенаправление HTTP на HTTPS, и ваши вызовы API пытаются получить доступ к http://api.example.com/api/documentations?page=1, они собираютсяпотерпеть неудачу, потому что (как говорится в сообщении) вы не можете перенаправить предварительную проверку CORS.

Обновите код, чтобы выполнять вызовы API через HTTPS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...