Axios 进入 url 有效,但第二个参数作为对象时无效
Axios get in url works but with second parameter as object it doesn't
我正在尝试将 GET 请求作为第二个参数发送,但它在 url 时不起作用。
这有效,$_GET['naam'] returns 测试:
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'
}
}
我正在尝试将 GET 请求作为第二个参数发送,但它在 url 时不起作用。
这有效,$_GET['naam'] returns 测试:
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'
}
}