我试图发送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,它也不起作用。


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

你可以使用params配置选项来设置查询字符串的参数,如下所示:

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

客户端:

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

在服务器:

function get(req, res, next) {
    
  let param = req.query.foo
  // ...
}

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

当客户端和服务器都切换到axios时。Get, req.query.foo工作得很好


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

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