Axios получает в url работает, но со вторым параметром в качестве объекта он не
Я пытаюсь отправить запрос 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
он тоже не работает.
Ответы
Ответ 1
axios.get
принимает конфигурацию запроса как второй параметр (а не параметры строки запроса).
Вы можете использовать опцию params
config для установки параметров строки запроса следующим образом:
axios.get('/api', {
params: {
foo: 'bar'
}
});
Ответ 2
На клиенте:
axios.get('/api', {
params: {
foo: 'bar'
}
});
На сервере:
function get(req, res, next) {
let param = req.query.foo
.....
}
Ответ 3
На стороне сервера я получаю проблемы
router.get('/quiz', (req, res, next) => {console.log(req.query)
let CAT_ID = req.query.CAT_ID;
let TOPIC_ID = req.query.TOPIC_ID;
let count = req.query.count;
Question.find({ CAT_ID: CAT_ID } && { TOPIC_ID: TOPIC_ID }).countDocuments(function (err, count) {
if (count >= count) {
Question.find({ CAT_ID: req.body.CAT_ID } && { TOPIC_ID: req.body.TOPIC_ID }).limit(5)
.then(questions => res.json(questions))
.catch(error => console.log("Error Fetching Questions" + error));
}
else {
console.log("Insufficient Questions");
}
});
let CAT_ID = req.query.CAT_ID;
let TOPIC_ID = req.query.TOPIC_ID;
let count = req.query.count;
Question.find({ CAT_ID: CAT_ID } && { TOPIC_ID: TOPIC_ID }).countDocuments(function (err, count) {
if (count >= count) {
Question.find({ CAT_ID: req.body.CAT_ID } && { TOPIC_ID: req.body.TOPIC_ID }).limit(5)
.then(questions => res.json(questions))
.catch(error => console.log("Error Fetching Questions" + error));
}
else {
console.log("Insufficient Questions");
}
});
}); });
он выдает консоль как {CAT_ID: '11', TOPIC_ID: '103', количество: '5'} [0] GET/студент/тест? CAT_ID = 11 & TOPIC_ID = 103 & count = 5 304 9,035 мс - -
Что я делаю неправильно