You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Django REST Framework开发API时DELETE请求出现404及JSON解析错误

Django-REST-Framework DELETE请求404问题排查与解决

问题现象

发送DELETE请求删除对象时返回404 (Not Found),同时控制台报错:Uncaught (in promise) SyntaxError: Unexpected token '<', "<!DOCTYPE "... is not valid JSON,POST/GET请求可正常执行。

核心原因

后端路由配置与前端请求的URL不匹配:

  • 后端urls.py中deleteFavourite路径无末尾斜杠:path('deleteFavourite', views.deleteFavourites),
  • 前端请求的URL带末尾斜杠:fetch("http://127.0.0.1:8000/deleteFavourite/" , {...})

Django路由匹配规则严格,两个URL会被判定为不同路径,导致请求找不到对应视图,返回404的HTML页面,前端解析JSON时自然报错。

解决方案

1. 统一URL路径的斜杠(优先方案)

修改后端urls.py,给deleteFavourite路径添加末尾斜杠,与其他路由保持一致:

urlpatterns = [
    path('getFavourite/', views.getFavourites),
    path('addFavourite/', views.addFavourites),
    path('deleteFavourite/', views.deleteFavourites),  # 补充末尾斜杠
]

2. 增强视图健壮性(可选但推荐)

当前deleteFavourites视图未做异常处理,若请求无name参数或对应对象不存在,会直接抛出500错误。建议添加异常捕获:

from rest_framework import status  # 导入状态码模块

@api_view(['DELETE'])
def deleteFavourites(request):
    try:
        name = request.data.get('name')
        # 校验name参数是否存在
        if not name:
            return Response({"error": "必须提供name参数"}, status=status.HTTP_400_BAD_REQUEST)
        # 查找并删除目标对象
        favorite = Favorite.objects.get(name=name)
        favorite.delete()
        return Response({"result": "收藏已删除"})
    except Favorite.DoesNotExist:
        return Response({"error": "该收藏不存在"}, status=status.HTTP_404_NOT_FOUND)

3. 前端请求容错处理(可选)

在前端添加响应状态码检查,避免非JSON响应导致的解析错误:

function favDelete(name){
    console.log(name)
    fetch("http://127.0.0.1:8000/deleteFavourite/" , {
        method:"DELETE",
        headers: {
            'Content-Type' : 'application/json'
        },
        body:JSON.stringify({"name":name})
    })
    .then(response => {
        if (!response.ok) {
            throw new Error(`请求失败:${response.status}`);
        }
        return response.json();
    })
    .then(data => console.log(data.result))
    .catch(error => console.error(error))
}

内容的提问来源于stack exchange,提问作者Ramin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 07:17:06