Axios进入url工作,但第二个参数作为对象,它没有

Sin*_*met 87 reactjs react-native redux axios

我正在尝试将GET请求作为第二个参数发送,但它在作为url时不起作用.

这有效,$ _GET ['naam']返回测试:

export function saveScore(naam, score) {
  return function (dispatch) { 
    axios.get('http://****.nl/****/gebruikerOpslaan.php?naam=test')
      .then((response) => {
        dispatch({type: "SAVE_SCORE_SUCCESS", payload: response.data})
      })
      .catch((err) => {
        dispatch({type: "SAVE_SCORE_FAILURE", payload: err})
      })
  }
};
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试这个时,根本没有任何东西$_GET:

export function saveScore(naam, score) {
  return function (dispatch) { 
    axios.get('http://****.nl/****/gebruikerOpslaan.php',
    {
        password: 'pass',
        naam: naam,
        score: score
    })
      .then((response) => {
        dispatch({type: "SAVE_SCORE_SUCCESS", payload: response.data})
      })
      .catch((err) => {
        dispatch({type: "SAVE_SCORE_FAILURE", payload: err})
      })
  }
};
Run Code Online (Sandbox Code Playgroud)

为什么我不能这样做?在文档中,它清楚地表明它是可能的.有了$_POST它也不行.

Nic*_*sev 225

axios.get 接受请求配置作为第二个参数(不是查询字符串参数).

您可以使用paramsconfig选项设置查询字符串参数,如下所示:

axios.get('/api', {
  params: {
    foo: 'bar'
  }
});
Run Code Online (Sandbox Code Playgroud)

  • 如何在服务器端提取它? (6认同)

dan*_*ren 55

在客户端:

  axios.get('/api', {
      params: {
        foo: 'bar'
      }
    });
Run Code Online (Sandbox Code Playgroud)

在服务器上:

function get(req, res, next) {

  let param = req.query.foo
   .....
}
Run Code Online (Sandbox Code Playgroud)

  • @danikorean,我们可以在不使用请求方法别名的情况下编写相同的客户端代码,即仅使用 `axios({url:"url_goes_here",data:{params:{foo:'bar'}}) 代替 `axios.get` ` (2认同)
  • 这个服务器代码节省了我的时间,谢谢!对于任何想知道的人,请坚持使用 .get 调用的“params”,而不是您在搜索时可能看到的“body”。如果您愿意,您可以在服务器端将其重命名为任何名称,但保留客户端获取的参数。 (2认同)