【问题标题】:fetch with DELETE method doesnt' work使用 DELETE 方法获取不起作用
【发布时间】: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 正文中。效果很好。

标签: reactjs fetch


【解决方案1】:

[已解决]

由Content-Type: 'application/json' 解决,并将有效负载放入 http 正文。

效果很好。

【讨论】:

    猜你喜欢
    • 2015-02-08
    • 2012-09-01
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多