Axios get in url 有效,但第二个参数作为对象却无效

IT技术 reactjs react-native redux axios
2021-04-22 05:55:31

我正在尝试将 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个回答

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

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

axios.get('/api', {
  params: {
    foo: 'bar'
  }
});
在服务器端提取是这里的重点,我确定您可以在服务器端使用字符串 foo 作为您的方法的参数,但我不确定如何一次获取所有参数作为服务器端方法中的对象。任何线索?我试图从这个网址获得帮助stackoverflow.com/questions/55602990/...
2021-06-06 05:55:31
@zero_cool 你不需要访问 params ,这里的例子你可以访问“foo”,它会返回“bar”
2021-06-11 05:55:31
如何在服务器端提取它?
2021-06-12 05:55:31
axios.get('api?&foo=bar') || axios.get(api?&${param}=${value})
2021-06-13 05:55:31

在客户端:

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

在服务器上:

function get(req, res, next) {

  let param = req.query.foo
   .....
}
axios.get('/api', { params}) !== axios.get('/api', params)
2021-05-27 05:55:31
@danikorean,我们可以在不使用请求方法别名的情况下编写相同的客户端代码,即而不是axios.get仅使用axios({url:"url_goes_here",data:{params:{foo:'bar'}})
2021-05-31 05:55:31
为什么它params在客户端,但query在服务器上?
2021-06-07 05:55:31
这为我节省了很多时间,静态:axios.get('api?&foo=bar') || 动态:axios.get( api?&${param}=${value})
2021-06-08 05:55:31
此服务器代码为我节省了数小时,谢谢!对于任何想知道的人,请坚持使用 'params' 进行 .get 调用,而不是您在四处搜索时可能看到的 'body'。如果您愿意,您可以在服务器端重新命名它,但保留客户端获取的参数。
2021-06-16 05:55:31

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

axios.get('/api', {
    data: {
        foo: 'bar'
    }
}
data用于axios.post使用配置对象
2021-05-22 05:55:31
你的意思是{params:{foo:'bar'}} 作为公认的答案
2021-06-21 05:55:31

对我来说,我试图使用axios.post.

当客户端和服务器都切换到 时axios.getreq.query.foo工作起来很有魅力