Реагировать на проблему прокси с сервером API - PullRequest
0 голосов
/ 22 апреля 2020

Я новичок ie с развертыванием реактивного проекта. Сервер API - это проект Laravel, размещенный на площадке.

Я уверен, что API работает от Почтальона. И реактивный проект работает на localhost:3000. Чтобы получить некоторые данные с помощью API, я добавил proxy: "http://api server domain" в package.json.

. Когда я собираюсь получить данные, он всегда говорит «Недопустимый метод».

Итак, я разместил сервер API на локальном хосте. В этом случае я добавил proxy: "http://localhost:8000 в пакет. json, он отлично работает.

Как мне решить эту проблему?

1 Ответ

1 голос
/ 22 апреля 2020

Похоже, у вас проблема CORS (Обмен ресурсами между источниками).

Согласно MDN, CORS - это механизм, который использует дополнительные заголовки HTTP, чтобы сообщать браузерам о предоставлении веб-приложению, работающему в одном источнике, доступа к выбранным ресурсам из другого источника. Веб-приложение выполняет HTTP-запрос перекрестного происхождения, когда оно запрашивает ресурс, который имеет другое происхождение (домен, протокол или порт) от своего собственного.

Пример запроса перекрестного источника: front- end JavaScript код, обслуживаемый из https://domain-a.com, использует XMLHttpRequest для отправки запроса на https://domain-b.com/data.json.

В целях безопасности браузеры ограничивают HTTP-запросы перекрестного происхождения инициировано из сценариев. Например, XMLHttpRequest и Fetch API следуют политике одного источника. Это означает, что веб-приложение, использующее эти API, может запрашивать ресурсы только из того же источника, из которого было загружено приложение, если только ответ из других источников не содержит правильных заголовков CORS.

Дополнительные технические подробности ЗДЕСЬ .

Решение:

Вам необходимо включить CORS в своей службе API.

Если у вас нет доступа к настройке Apache, вы все равно можете отправить заголовок из сценария PHP. Это случай добавления следующего к вашим PHP сценариям:

 <?php header("Access-Control-Allow-Origin: *");

Следующая ссылка показывает, как: Как включить CORS на PHP

Поскольку вы используете Laravel, использование промежуточного программного обеспечения может быть хорошим способом решения вашей ситуации с CORS.

CORS Middleware для Laravel должно помочь вам.

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