#javascript #axios
#javascript #axios
Вопрос:
Я пытаюсь добавить следующий параметр запроса в свой вызов axios, но по какой-то причине он его не принимает.
const config = {
headers: {
'Content-Type': 'application/json',
}
}
const params = {
params: {
isAccepted: true
}
}
const url = `https://testapi.com`
axios.post(url, params, config)
Однако он отлично работает, когда я делаю это в этом формате
const config = {
headers: {
'Content-Type': 'application/json',
}
}
const url = `https://testapi.com?isAccepted=true`
axios.post(url, params, config)
Я неправильно использую поле параметров в вызове axios?
Комментарии:
1. параметры запроса добавляются только к URL-адресу в строке запроса для
GET
запросов, посколькуPOST
они включены в тело запроса. Разумный API не должен обращать внимания на параметры запроса в URLPOST
-адресе запроса.2. Да, вы должны добавить параметры таким образом *** const params = { isAccepted: true } ***
3. @RobinZigmond Итак, в моем случае
POST
обращаем внимание на параметры запроса. Что мне делать в этом случае?4. Что не так с вашим вторым фрагментом, который, по вашим словам, работает?
5. Вам не нужно устанавливать
Content-type: application/json
заголовок, поскольку он используется по умолчанию
Ответ №1:
‘Как видно из документации, запрос axios post может принимать параметры в конфигурации. Вы пытаетесь передать параметры в том месте, где должен быть ваш объект post (данные). Однако параметры могут быть включены в конфигурацию.
axios.post(url[, data[, config]])
Вот документация. https://github.com/axios/axios#axios-api
Попробуйте реструктурировать код следующим образом
const config = {
headers: {
'Content-Type': 'application/json',
},
params: {
isAccepted: true
}
}
const data = {
data: 'whatever'
}
axios.post(url, data, config)