[英]Can't respond to AJAX call on context processor
我正在 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-env\lib\site-packages\django\template\context.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 及其工作方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.