Reputation: 6752
I'm trying to send GET request as second parameter but it doesn't work while it does as url.
This works, $_GET['naam'] returns test:
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})
})
}
};
But when I try this, there is nothing in $_GET
at all:
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})
})
}
};
Why can't I do that? In the docs it clearly says it's possible. With $_POST
it doesn't work either.
Upvotes: 259
Views: 467462
Reputation: 4301
On client:
axios.get('/api', {
params: {
foo: 'bar',
},
});
On server:
function get(req, res, next) {
let param = req.query.foo
// ...
}
Upvotes: 174
Reputation: 13
This works fine for me. When it is post request nested data object isn't needed but in get requests, in order to send data, you need it.
axios.get('/api', {
data: {
foo: 'bar'
}
}
Upvotes: -2
Reputation: 1729
For me I was trying to send params using axios.post
.
When switch both client and server to axios.get
, req.query.foo
worked like a charm
Upvotes: 0
Reputation: 25907
axios.get
accepts a request config as the second parameter (not query string params).
You can use the params
config option to set query string params as follows:
axios.get('/api', {
params: {
foo: 'bar'
}
});
Upvotes: 552