Прокси-сервер не работает с fetch () в React. js - PullRequest
0 голосов
/ 21 июня 2020

Я сделал простой проект на React; клиент работает на порте 3000, сервер - на 3001.

Если я запускаю localhost:3001/api/visitator/cars, он работает правильно, но когда я делаю запрос GET на клиенте, у меня появляется эта ошибка на консоли http://localhost:3000/api/visitator/cars 404 (Not found).

Не знаю почему, но запрос выполняется на порт 3000, а не на 3001, даже если в пакете. json присутствует "proxy": "http://localhost:3001".

Это код в client/api :

async function askForCars(){

let url = '/api/visitator/cars'
const response = await fetch(url);
const carJson = await response.json();
if(response.ok){
    console.log(carJson)
    return carJson;
} else {
    let err = {status: response.status, errObj:carJson};
    throw err;  // An object with the error coming from the server
 }
}

1 Ответ

0 голосов
/ 22 июня 2020

Есть два способа решить эту проблему:

  1. Вы указали полный путь, а не относительный путь, так как ваш сервер находится в другом домене, поскольку порты разные. Таким образом, значение вашей переменной url должно быть доменным именем + uri + ie http://localhost:3001/api/visitator/cars.

  2. Второй способ решить эту проблему - добавить правила перенаправления на сервер, на котором вы находитесь. хостинг приложения, так что каждый ваш запрос с http://localhost:3000/api uri должен быть перенаправлен на http://localhost:3001/api.

Я думаю, что быстрое решение будет первым на данный момент, если вы этого не сделаете есть требование перенаправить вызовы API на фактический сервер. Надеюсь, это поможет.

...