我想通过Ajax将数据发送到我的Django服务器。但是,当我想读取这些数据时,会收到错误的请求错误。我不知道为什么,其他方法(例如request.method或request.stream)效果很好。
这是Ajax调用:
jQuery.ajax({
type: 'post',
url: 'http://127.0.0.1:8000/termin/get-journey-time/',
contentType: 'application/json; charset=utf-8',
data: {
'method': 'get_journey_time',
'mandant_id': 1,
'customer_address': customer_address,
'staff_group': staff_group_id
},
success: function (resultData) {
console.log(resultData)
});
这是我对此发布请求的看法:
class get_journey_time(generics.ListAPIView):
"""
Handle Ajax Post to calculate the journey time to customer for the selected staff group
"""
permission_classes = (AllowAny,)
def post(self, request, *args, **kwargs):
body = request.data
return Response(body)
我收到错误代码400 Bad Request。你知道为什么吗?
def post(self, request, *args, **kwargs):
body = request.method
return Response(body)
或
def post(self, request, *args, **kwargs):
body = request.stream
return Response(body)
做得好
答案 0 :(得分:1)
您正在获取HTTP 400,因为您的代码引发了异常。由于其他方法有效,因此它必须是body = request.data
部分。阅读docs之后
我认为解析您发布的数据肯定有问题。就像,这里不需要序列化器吗?
答案 1 :(得分:0)
我发现了我的错误。
阅读django rest框架文档后,我发现我在post方法中调用了错误的参数。
def post(self, request, format=None):
代替了def post(self, request, *args, **kwargs)
为我工作。
谢谢,最好!