我認爲這是不同於其他問題,我已經檢查了答案,仍然沒有運氣。感謝您的幫助:Django評論 - Ajax和CSRF失敗
我有一個新聞項目列表(如Facebook的飼料),並有每個附加的評論表(使用django.contrib.comments應用程序)。它正常工作正常。
但是,我在頁面上使用了一種AJAX「無限滾動」 - 當您滾動時,它會通過AJAX加載下一組新聞項目和相關評論表單。新加載的新聞項目的評論表單不起作用(CSRF驗證失敗)。
很明顯,爲什麼 - {%csrf_token%}沒有傳遞給返回的JSON響應,所以新加載的評論表單沒有CSRF數據。
我已經嘗試使用Django頁面上的設置cookie方法(https://docs.djangoproject.com/en/1.3/ref/contrib/csrf/#ajax),但似乎不工作,也不會嘗試@csrf_exempt裝飾器來完全排除CSRF。
任何建議如何我可以傳遞一個csrf_token以及返回的JSON響應?還是有其他選擇嗎?
這裏的觀點:
def my_view(request):
# the normal view gets a queryset of all Info items and returns them
infos = Info.objects.all()
....
# here's the AJAX part
if request.GET.get('xhr') and page > 1:
infos = paginator.page(int(request.GET.get('page')))
objects_list = []
for object in infos:
objects_list.append(render_to_string('list/snippets/feed_li.html', {
'object': object,
}))
json = simplejson.dumps(objects_list, cls=DjangoJSONEncoder)
return HttpResponse(json, mimetype='application/json')