【发布时间】:2018-06-06 11:58:03
【问题描述】:
我用 DRF 制作了 API 服务器,所以如果删除数据,我必须使用 DELETE 方法。
所以我尝试使用方法向服务器请求:'DELETE',但它不起作用。
[js文件]
fetch("http://abc/article/24",
{
method: "DELETE",
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
},
body: JSON.stringify({password: '123'})
})
我使用 Chrome 网络选项卡捕获数据包,它的请求标头是 OPTION。
在我的代码中,我定义了删除方法。但是为什么Request Header的METHOD是OPTION呢?
[添加的屏幕截图]
我设置响应码成功,返回204,失败返回304
【问题讨论】:
-
请避免使用 DRF 等首字母缩略词
-
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8';和charset之间不应该有空格,虽然客户端和服务器处理空格,但这是不允许的。 ietf.org/rfc/rfc2045.txt -
@rash.tay 对不起。 DRF = Django 休息框架。我将 Content-Type 修复为您的代码,它仍然无法正常工作。
-
fetch("http://abc/article/24", { method: "DELETE", headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, body: JSON.stringify({password: '123'}) }).catch(err => console.log(err))你能复制这个 sn-p 并让我知道你遇到的错误是什么吗?另外,您可以从您的网络选项卡中发布请求/响应的屏幕截图吗?另一个建议是在 Postman 应用上测试您的 API。 -
@rash.tay 我通过 Content-Type: 'application/json' 和有效载荷解决了到 http 正文中。效果很好。