我在ReactJS中编程时正在使用Axios,我假装向我的服务器发送DELETE请求。
为此,我需要标题:
headers: {
'Authorization': ...
}
而身体是由
var payload = {
"username": ..
}
我一直在网络中搜索,只发现DELETE方法需要一个“param”并且不接受“数据”。
我一直试图像这样发送它:
axios.delete(URL, payload, header);
甚至
axios.delete(URL, {params: payload}, header);
但似乎没有任何作用......
有人可以告诉我它是否可能(我认为是)发送带有标题和正文的DELETE请求以及如何执行此操作?
先感谢您!
经过多次尝试,我发现它有效。
请遵循顺序,这是非常重要的,否则它将无法正常工作
axios.delete(
URL,
{headers: {
Authorization: authorizationToken
},
data:{
source:source
}}
);
axiox.delete确实支持请求正文。它接受两个参数:url和optional config。您可以使用config.data设置响应正文,如下所示:
axios.delete(url, { data: { foo: "bar" } });
以下是使用axios发送各种http动词所需格式的简短摘要:
以上两个是等价的。在第二种方法中观察GET
关键字
axios.get('/user?ID=12345')
.then(function (response) {
// Do something
})
和axios.get('/user', {
params: {
ID: 12345
}
})
.then(function (response) {
// Do something
})
params
POST
PATCH
关键要点
axios.post('any-url', payload).then(
// payload is the body of the request
// Do something
)
axios.patch('any-url', payload).then(
// payload is the body of the request
// Do something
)
请求可选地需要DELETE
密钥来正确设置查询参数axios.delete('url', { data: payload }).then(
// Observe the data keyword this time. Very important
// payload is the request body
// Do something
)
要求身体需要它在get
键下设置axios.teleti kazxsopoi货币。
axios.delete(url [,config])
字段params
。
这使得API调用可以写成:
delete
我遇到了同样的问题,我解决了这个问题:
data
要通过passed a url and an optional configuration发送带有一些标头的HTTP DELETE,我已经这样做了:
available to the configuration can include the headers
不同HTTP动词(GET,POST,PUT,DELETE)的const headers = {
'Authorization': 'Bearer paperboy'
}
const data = {
foo: 'bar'
}
axios.delete('https://foo.svc/resource', {headers, data})
语法很棘手,因为有时候第二个参数应该是HTTP主体,有些时候(当它可能不需要时)你只需要传递头文件作为第二个参数。
但是,假设您需要在没有HTTP主体的情况下发送HTTP POST请求,那么您需要将axios.delete(url, {data:{username:"user", password:"pass"}, headers:{Authorization: "token"}})
作为第二个参数传递。
请记住,根据配置对象(axios
)的定义,在调用 const deleteUrl = "http//foo.bar.baz";
const httpReqHeaders = {
'Authorization': token,
'Content-Type': 'application/json'
};
// check the structure here: https://github.com/axios/axios#request-config
const axiosConfigObject = {headers: httpReqHeaders};
axios.delete(deleteUrl, axiosConfigObject);
时,您仍然可以通过axios
字段在HTTP调用中传递HTTP正文,但是对于HTTP DELETE动词,它将被忽略。
第二个参数有时是HTTP主体和其他时间undefined
的整个https://github.com/axios/axios#request-config对象之间的这种混淆是由于HTTP规则的实现方式。有时,HTTP调用不需要HTTP主体才能被视为有效。
我遇到了同样的问题......我通过创建自定义axios实例解决了这个问题。并使用它来进行经过身份验证的删除请求..
data
对于删除,您需要按照以下步骤操作
axios.delete
它对我有用。