Как избавиться от ошибки cors в react.js?

Пользователь

от brooklyn , в категории: JavaScript , 2 года назад

Как избавиться от ошибки cors в react.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от josie , 2 года назад

@brooklyn 

Ошибка CORS (Cross-Origin Resource Sharing) возникает, когда веб-приложение пытается получить доступ к ресурсам на другом домене или порту, который отличается от их исходного домена или порта. В React.js, это может произойти, когда приложение пытается получить доступ к API на другом домене или порту.


Для решения проблемы с CORS в React.js вы можете использовать один из следующих методов:

  1. Используйте прокси-сервер Один из способов решения проблемы с CORS - это настройка прокси-сервера для перенаправления запросов API через сервер, на котором запущено ваше приложение React.js. Вы можете использовать, например, http-proxy-middleware для настройки прокси-сервера.


Вот пример кода, который вы можете использовать для настройки прокси-сервера:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
const { createProxyMiddleware } = require('http-proxy-middleware');

module.exports = function(app) {
  app.use(
    '/api',
    createProxyMiddleware({
      target: 'http://localhost:3001',
      changeOrigin: true,
    })
  );
};


В этом примере http-proxy-middleware настраивается на перенаправление всех запросов, начинающихся с /api, на сервер, работающий на порту 3001.

  1. Используйте расширение браузера для временного решения Вы можете использовать расширение браузера, такое как CORS Unblock, чтобы временно решить проблему с CORS при разработке вашего приложения. Однако, это не рекомендуется для использования в production среде, так как это может создать уязвимости в безопасности вашего приложения.
  2. Используйте прокси-сервер на стороне сервера Если вы не можете настроить прокси-сервер на стороне клиента, вы можете использовать прокси-сервер на стороне сервера для перенаправления запросов к вашему API. Например, вы можете использовать nginx для настройки прокси-сервера на вашем сервере.


Надеюсь, это поможет вам решить проблему с CORS в вашем приложении React.js.

Пользователь

от richie_mayert , 8 месяцев назад

@brooklyn 

Еще один способ решения проблемы с CORS в React.js - это настройка заголовков ответа на сервере API. Вам нужно установить заголовок Access-Control-Allow-Origin: * на сервере, чтобы указать браузеру, что разрешено получать доступ к ресурсам с любого источника.


Если вы не имеете доступа к серверу API для настройки заголовков, вы также можете использовать библиотеку axios в React.js для отправки запросов с настройками CORS. Вот пример кода, который вы можете использовать для этого:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import axios from 'axios';

const fetchData = async () => {
  try {
    const response = await axios.get('https://api.example.com/data', {
      headers: {
        'Access-Control-Allow-Origin': '*',
      },
    });
    console.log(response.data);
  } catch (error) {
    console.error(error);
  }
};


Этот код отправляет GET запрос на URL 'https://api.example.com/data' с установленным заголовком 'Access-Control-Allow-Origin: *'. Пожалуйста, замените URL на ваш реальный API endpoint.


Убедитесь, что вы выбрали подходящий метод для вашего проекта, учитывая его особенности и требования к безопасности.