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

时间:2016-12-03 12:17:49

标签: 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})
      })
  }
};

但是当我尝试这个时,$_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})
      })
  }
};

为什么我不能这样做?在文档中,它清楚地表明它是可能的。使用$_POST时,它也无效。

4 个答案:

答案 0 :(得分:154)

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

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

axios.get('/api', {
  params: {
    foo: 'bar'
  }
});

答案 1 :(得分:36)

在客户端:

  axios.get('/api', {
      params: {
        foo: 'bar'
      }
    });

在服务器上:

function get(req, res, next) {

  let param = req.query.foo
   .....
}

答案 2 :(得分:0)

对我来说,我试图使用 axios.post 发送参数。

当客户端和服务器都切换到 axios.get 时,req.query.foo 就像一个魅力

答案 3 :(得分:0)

这对我来说很好用。当它是 post 请求时不需要嵌套数据对象,但在 get 请求中,为了发送数据,你需要它。

axios.get('/api', {
    data: {
        foo: 'bar'
    }
}