我是react redux
的新手。这里有一个delete request
export const deleterequest = (url, jdId) =>
axios.delete(
url,
jdId,
{
headers: {
"Authorization": localStorage.getItem("access_token") !== null ? `Bearer ` + localStorage.getItem("access_token") : null,
"Content-Type": "application/json"
}
}
).then(data => {
if (data.status === HttpStatus.OK) {
return {
status: data.status,
payload: data.data
};
}
}).catch(err => {
return {
status: err.response ? err.response.data : 'Network error',
payload: null
};
因此,我尝试使用此围裙。 jdId
是一个字符串数组。因此,但是当我以这种方式使用时,我的请求标头不会显示此数据。
那么,我在做什么错了。有人可以帮我吗?
答案 0 :(得分:1)
我在 0.20.0 版本中遇到了相同的问题,并且在升级到0.21.0 后解决了问题
答案 1 :(得分:1)
试试这个,
在 React js 中,
deleteData = (question) => {
if (question !== "") {
const url = "http://localhost:3001/questions/delete-question/" + question
const headers = {
"Content-Type": "application/json"
}
axios.delete(url, {data: question}, headers)
.then(res => {
console.log(res)
})
.catch(err => {
console.log(err)
})
}
}
在后端,
router.delete('/delete-question/:question', (req, res) => {
questions.deleteQuestion(req.params.question)
.then(response => {
res.status(200).send(response);
})
.catch(error => {
res.status(500).send(error);
})
})
const deleteQuestion = (question) => {
return new Promise(function(resolve, reject) {
pool.query(`DELETE FROM ${QUESTIONS_TABLE} WHERE question = $1`, [question], (error, results) => {
if (error) {
reject(error)
}
resolve({
status: 'success',
message: 'Question deleted'
})
})
})
}
确保 axios 参数的格式为 axios.delete(url, {data: question}, headers)
{} 括号中的数据很重要。
那么 api url 应该是这样的 /delete-question/:question
和
像这样从前端访问它"http://localhost:3001/questions/delete-question/" + question
答案 2 :(得分:0)
带有正文的删除请求需要在数据键下设置
export const deleterequest = (url, jdId) =>
axios.delete(
url,
{ data: jdId },
{
headers: {
"Authorization": localStorage.getItem("access_token") !== null ? `Bearer ` + localStorage.getItem("access_token") : null,
"Content-Type": "application/json"
}
}
).then(data => {
if (data.status === HttpStatus.OK) {
return {
status: data.status,
payload: data.data
};
}
}).catch(err => {
return {
status: err.response ? err.response.data : 'Network error',
payload: null
};
答案 3 :(得分:0)
Axios支持在删除请求中发送正文。在这种情况下,您必须以以下格式发送它:
axios.delete(
url,
{
data: { jdId }, // or data: jdId, depending on how you handle it in the back end
headers: {
"Authorization": localStorage.getItem("access_token") !== null ? `Bearer ` + localStorage.getItem("access_token") : null,
"Content-Type": "application/json"
}
}
)
.then(data => {
// rest of your code
})
.catch(err => {
// handle error
})
Axios希望删除请求中只有一个配置对象。 (请参见此处:https://github.com/axios/axios#axiosdeleteurl-config)该配置应具有两个可选键,即。 数据和标头。 数据不过是请求正文。
希望这对您有所帮助。
答案 4 :(得分:0)
在我的情况下,我必须将一个对象传递给data
,否则它将根本无法工作。
错误:
axios.delete(url, {
data: '123',
});
正确:
axios.delete(url, {
data: { data: "123" },
});
答案 5 :(得分:-1)
axios.delete(url, {headers: {}, data: {}})
我认为这会奏效