确定是 设置 了请求头, 并用 JSON.stringify() 把 ...
如果你已经设置了请求头,并使用JSON.stringify()将请求数据发送给接口,但在DRF视图中仍然无法获取到正确的请求体数据,那么可能是由于DRF默认不支持处理DELETE请求的请求体数据导致的。通常,DELETE请求的请求体是没有意义的,因为它主要用于删除资源而不是传递数据。
在DRF中,可以通过以下两种方式来处理DELETE请求中的数据:
1. 使用URL参数:将需要传递的数据放在URL中,而不是请求体中。例如,修改你的URL模式和视图函数,将需要删除的资源ID作为URL参数传递:
# urls.py
from django.urls import path
from .views import YourDeleteView
urlpatterns = [
path('your-resource/<int:pk>/', YourDeleteView.as_view(), name='your-delete-view'),
]
# views.py
from rest_framework.views import APIView
from rest_framework.response import Response
class YourDeleteView(APIView):
def delete(self, request, pk):
# 根据pk执行删除操作
return Response({'message': '删除成功'})
现在,你可以将要删除的资源ID作为URL参数发送DELETE请求。
2. 使用请求头:在发送DELETE请求时,将需要传递的数据放在请求头中,而不是请求体中。你可以在请求头中定义自定义的X-Your-Data字段,并在视图中获取它:
wx.request({
url: 'YOUR_API_URL',
method: 'DELETE',
header: {
'Content-Type': 'application/json',
'X-Your-Data': JSON.stringify({
// 请求数据
})
},
success: function(res) {
// 处理成功响应
},
fail: function(res) {
// 处理失败响应
}
});
在DRF的视图中,你可以使用`request.META`字典来获取请求头信息:
class YourDeleteView(APIView):
def delete(self, request, pk):
your_data = request.META.get('HTTP_X_YOUR_DATA')
# 处理你的数据
return Response({'message': '删除成功'})
希望以上两种方法能够解决你在处理DELETE请求时无法获取请求体数据的问题。如果还有其他疑问,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
1
[2]