Javascript 调用';请求。POST';在Django看来
当我用classJavascript 调用';请求。POST';在Django看来,javascript,jquery,ajax,django,Javascript,Jquery,Ajax,Django,当我用class向上箭头单击一个div时,我正试图获得一个AjaxPOST来将数据发送到我的视图,以便在那里操作我的数据 问题是,当我单击所述div并在我的视图文件中打印request.POST时,我得到了一个POST对象,该对象包含。空的!我似乎不明白为什么我的POST请求没有发送我的数据 这是我的HTML… 这是我的url路径… 我尝试过的事情… 1) 我使用了GET而不是POST,并且我能够使用request.GET.GET('dane') 1) 尝试使用request.POST.data
向上箭头单击一个div
时,我正试图获得一个AjaxPOST
来将数据发送到我的视图,以便在那里操作我的数据
问题是,当我单击所述div并在我的视图文件中打印request.POST
时,我得到了一个POST
对象,该对象包含
。空的!我似乎不明白为什么我的POST请求没有发送我的数据
这是我的HTML…
这是我的url路径…
我尝试过的事情…
1) 我使用了GET
而不是POST
,并且我能够使用request.GET.GET('dane')
1) 尝试使用request.POST.data
和request.POST.data
并获得以下内容<代码>属性错误:“QueryDict”对象没有属性“data”
我还收到了一个“失败”警报
如何通过
POST
请求将数据发送到视图,然后访问其中的数据?使用application/JSON
发布JSON数据时,需要使用request.body
而不是request.POST
像这样:
class VoteUpPost(View):
def post(self, request):
print(request.body)
data = json.loads(request.body)
return JsonResponse({'status': True})
正如Jacques提到的,确保更新js以传递JSON字符串
更改:
data: {'dane': 123456789101112},
致:
Django请求只能解析应用程序/x-www-form-urlencoded和 多部分/表单数据至
请求。POST
。对于其他内容类型,您必须使用request.body
property。对于内容类型的断言,您可以从request.META.get('content\u type')
您能通过开发工具查看post请求中包含的内容吗?在网络选项卡下,您是否尝试了
JSON.stringify({'dane':12345678910112})
?传递JSON时,它必须是字符串。看,这可能不是你的问题,而是要考虑的事情。谢谢Paulo,你搞定了!当我打印(request.body)时,我得到了b'dane=12345678910112'
。如何访问12345678910112
?更新了我的答案。基本上,您需要确保数据是字符串。当我这样做时,我会得到b'{“dane”:12345678910112}
,但无法使用键访问值。我尝试了request.body.dane
和request.body['dane']
。有什么想法吗?是的,您需要将其加载到json中。我会更新我的答案。谢谢你的指点,我没有给你答案,因为上面列出了一个更简洁的答案。我投你一票是因为你解释了保罗没有解释的事情。
class VoteUpPost(View):
def post(self, request):
print(request.POST)
return JsonResponse({'status': True})
url(r'^voteuppost$', VoteUpPost.as_view()),
class VoteUpPost(View):
def post(self, request):
print(request.body)
data = json.loads(request.body)
return JsonResponse({'status': True})
data: {'dane': 123456789101112},
data: JSON.stringify({'dane': 123456789101112}),
def sample_view(request):
if request.META.get('CONTENT-TYPE') == 'application/json':
data = json.loads(request.body)
return JsonResponse({'any-message':'Hello'})