Javascript 调用';请求。POST';在Django看来

Javascript 调用';请求。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

当我用class
向上箭头单击一个
div
时,我正试图获得一个Ajax
POST
来将数据发送到我的视图,以便在那里操作我的数据

问题是,当我单击所述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'})