Многое зависит от того, что вы используете в качестве среды разработки, традиционное приложение Create-React или новый тренд. Я предпочитаю Vite, он выделяется тем, что он удивительно быстр и очень быстро настраивается, что является большим преимуществом.
Теперь, если вы создаете веб-приложение, используя React, популярную библиотеку JavaScript. Вашему приложению может потребоваться взаимодействие с сервером для получения данных или выполнения действий, таких как отправка и получение информации.
Однако, когда ваше приложение React в одном домене (например, на локальном хосте, где вы разрабатываете свое приложение) пытается связаться с сервером в другом домене (например, с сервером API) он часто сталкивается с ограничениями безопасности, известными как проблемы CORS (Cross-Origin Resource Sharing). Эти ограничения введены для предотвращения потенциальных угроз безопасности.
Вы можете настроить «прокси», который действует как посредник между вашим приложением React и сервером API.
В этой статье я расскажу, как настроить прокси-сервер в Vite, а затем в Create-react-app.
Не забудьте заменить http://localhost:8800
фактическим URL-адресом вашего внутреннего сервера. Поскольку в моем примере с внутренним сервером я использую порт 8800, этот код работает для меня.
ВИТЭ
В отличие от того, как мы это делаем в create-act-app, мы собираемся внести изменения в vite.config.js нашего react_app (имя папки).
Ниже приведен скриншот для лучшего понимания.
import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' export default defineConfig({ server: { proxy: { "/api": "http://localhost:8800", } } , plugins: [react()], })
export default defineConfig({ ... })
: Эта часть настраивает параметры по умолчанию для вашего проекта Vite.server: { ... }
: В конфигурации вы указываете параметры, относящиеся к серверу разработки.proxy: { ... }
: В настройках сервера вы настраиваете конфигурацию прокси. Здесь вы определяете, какие URL-адреса ваше приложение должно проксировать на другой сервер."/api": "http://localhost:8800"
: Вы говорите, что всякий раз, когда ваше приложение React пытается сделать запрос к URL-адресу, начинающемуся с «/api», сервер разработки должен перенаправить этот запрос наhttp://localhost:8800
. Это полезно, поскольку ваш сервер API может работать на другом порту (в данном случае 8800), и без этого прокси-сервера вы можете столкнуться с проблемами CORS.plugins: [react()],
: Эта часть добавляет плагин React в вашу конфигурацию Vite, который помогает Vite понимать и обрабатывать компоненты React.
В веб-приложении, которое я разрабатывал, мне нужно было выполнить запрос GET, и вот как я это сделал:
const getPins = async () => { try { const allPins = await axios.get("/api/pins"); setPins(allPins.data); } catch (err) { console.log(err); } };
Создать-реагировать-приложение
В Create React App вы можете настроить прокси для разработки прямо в файле package.json. Просто добавьте еще одну зависимость в этот длинный список, присутствующий в вашем файле package.json.
{ "proxy": "http://localhost:8800", }
Теперь, если ваше приложение React делает запрос к /api/pins
, а сервер разработки не имеет соответствующего маршрута, оно перенаправит запрос на http://localhost:8800.