不能响应上下文处理器上的AJAX调用



我正在开发一个关于DJANGO的网站,我面临一个问题:

我有一个按钮在我的网站,当触发时,发送一个AJAX POST请求。因为这个按钮是在我的网站的多个地方,我决定在我的后端上下文处理器文件上接收AJAX请求。

前端的请求是这样的:

$.ajax({
method: 'POST',
headers: {'X-CSRFToken': csrftoken},
data: {
"requested_item": requested_item
},
dataType: "json",
success: function() {
// Handle success
}
});

请求处理在后端是这样的:

requested_item = request.POST.get('requested_item')
if requested_item != None:
# Handle valid request
return JsonResponse({'success': True})

问题是,return JsonResponse({'success': True})不工作,它抛出这个错误:

File "*path*virtual-envlibsite-packagesdjangotemplatecontext.py", line 244, in bind_template
updates.update(processor(self.request))
ValueError: dictionary update sequence element #0 has length 17; 2 is required

数据从前端到后端到达没有任何麻烦,但我似乎无法响应。

我在后端以相同的方式处理多个AJAX请求,并且没有问题地响应,但这是我在上下文处理器中处理的唯一一个请求,所以我确信我缺少了一些东西。

谢谢!

在别人的帮助下,我终于弄明白了。

上下文处理器应该只用于模板上下文或模板渲染,因此响应应该是一个字典,而不是json类型的(这就是错误的原因)。

我为这个AJAX请求创建了一个独立的视图,并在AJAX的前端指定了这个视图的URL和它的工作方式。

相关内容

  • 没有找到相关文章