Неверный URI при выполнении запроса к бэкенду с create-реагировать-приложение - PullRequest
0 голосов
/ 03 апреля 2019

Я делаю интерфейсное приложение ReactJS с использованием create-реагировать на приложение, настроил свой прокси и убедился, что он работает, протестировав с клиентом REST API (Insomnia).По какой-то причине, когда запрос сделан из браузера, он терпит неудачу с кодом состояния 500, и указана причина «Ivalid URL».Я пробовал использовать другой браузер на компьютере разработчика, удаляя папку node_modules, использовавшуюся для разных библиотек запросов, даже переустанавливая create-реакции-приложение и создавая структуру проекта с нуля, но, похоже, я не могу заставить его работать,Самое странное, что приложение работает так, как написано на моем ноутбуке.

Я настроил свой прокси-сервер следующим образом:

const proxy = require ('http-proxy-middleware');

module.exports =function (app){
    console.log("Se ejecutó el setupProxy");
    app.use(proxy("/register", {target:"http://localhost:3001"}));
    app.use(proxy("/auth/local", {target:"http://localhost:3001"}));
    app.use(proxy("/api/current_user", {target:"http://localhost:3001"}));
}

Мой запрос от внешнего интерфейса выполнен в одномиз моих создателей Redux Action выглядит следующим образом:

export function registerUser(userInfo)
{
    return async (dispatch) =>
    {
        /*axios.post("/register",{
        display_name: userInfo.username,
        password: userInfo.password,
        email: userInfo.email,
    }).then((resp)=>{
        dispatch({type: USER_REGISTRATION, payload:"User Registered"});    
    }).catch((error)=>{
        dispatch({type: USER_REGISTRATION,payload:error.response.data.message});
    });*/
    rp.post('/register',{json:true,formData:{
        display_name: userInfo.username,
        password: userInfo.password,
        email: userInfo.email
    }}).then((response)=>{
        console.log(response);
    }).catch((err)=>{
        console.log("Error ha ocurrido:");
        console.log(err);
    });

};

}

Обратите внимание, что я пробовал и с axios, и с request.js.Axios не возвращает тело, а Request.js просто возвращает код состояния 500 и неверный URL-адрес.

Что я делаю не так?Почему это работает на одной машине, а не на другой?Пожалуйста, я в этом остроумие.Если кто-то может помочь, это будет очень ценно.

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

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

0 голосов
/ 03 апреля 2019

С помощью приложения create response вы можете добавить свойство proxy к вашему package.json.Нет необходимости использовать стороннюю библиотеку.

package.json

{
  "name": "your-app",
  "version": "0.1.0",
  "private": true,
  "proxy": "localhost:3001", //this is your back end port

Более подробную информацию можно найти здесь: https://facebook.github.io/create-react-app/docs/proxying-api-requests-in-development

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