axios использует неправильный URL, если у URL есть динамические параметры в ReactJS + Rails - PullRequest
0 голосов
/ 23 октября 2018

Таким образом, я использую axios, чтобы связать мой интерфейс ReactionJS с моим API-интерфейсом rails.

вот мой маршрутизатор:

[...]
<Route path="/" component={LandingPage} exact={true}/>
<Route path="/meals" component={MealsPage} exact={true}/>
<Route exact path="/user/:token"
                      render={routeProps => (
                        <MyAccountPage {...routeProps} currentUser={this.state} />
                      )}
              />
[...]

вот моя функция с использованием axios:

getCurrentUser: jwt => {
    let config = {
      headers: {}
    }
    if (jwt) {
      config['headers']['Authorization'] = 'Bearer ' + jwt
    }
    return axios.get('api/v1/users/current', config)
      .then(response => {
        console.log(response)
        return response.data
      })
      .catch(error => {
        if( error.response ){
            console.log(error: error.response.data);
        }
        return undefined
      })
  }

Он отлично работает с маршрутами / и /meals.Но когда axios вызывается с /user/:token, он пытается извлечь данные из /user/api/v1/users/current вместо /api/v1/users/current.

Как я могу изменить это так, чтобы он работал как для dev, так и для prod среды?

1 Ответ

0 голосов
/ 23 октября 2018

Проблема связана с путем в вашем запросе axios.get - поскольку он не начинается с косой черты, он рассматривается как относительный к текущему пути документа.

Если ваша конечная точка находится на /api/v1/users/current, то это путь, который вы должны указать в своем запросе:

return axios.get('/api/v1/users/current', config)
  .then(...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...