Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 读取网页时保留csrf令牌_Django_Csrf_Django Csrf_Django 1.7 - Fatal编程技术网

Django 读取网页时保留csrf令牌

Django 读取网页时保留csrf令牌,django,csrf,django-csrf,django-1.7,Django,Csrf,Django Csrf,Django 1.7,我有一个局部视图,我在某个url上提供该视图: url(r'^main.html$', PartialGroupView.as_view(template_name='main.html'), name='main') 我试图通过以下方式读取代码中其他位置的url: partial = urllib2.urlopen(partial_url).read() 然后我想将其发送给用户,如: return HttpResponse(partial) 一切正常,但问题是页面包含一个csrf令牌,之

我有一个局部视图,我在某个url上提供该视图:

url(r'^main.html$', PartialGroupView.as_view(template_name='main.html'), name='main')
我试图通过以下方式读取代码中其他位置的url:

partial = urllib2.urlopen(partial_url).read()
然后我想将其发送给用户,如:

return HttpResponse(partial)
一切正常,但问题是页面包含一个csrf令牌,之后,当用户收到发送给他的页面时,他尝试提交表单,但当他提交表单时,抛出一个错误,表示令牌丢失或不正确。在第一步中,如果仅使用此方法将视图发送给用户,则令牌工作正常

那么,当我以这种方式阅读页面时,有没有办法保留该标记?或者有没有其他方法可以在不违反csrf的情况下阅读页面

个人解决方案:

在我的例子中,我决定有更好的方法来解决这个问题,并放弃了从url读取html。我只是通过以下方式发送部分内容:

render(request, demanded_partial_name)

因为它在本地可用

最简单的选择是使视图CSRF免除,如图所示


一个很可能更好的办法是检查,所以张贴。基本上,您所做的是在编码url时传入一个参数字典,该字典将包含csrf中间件令牌

我最终转向了另一个解决方案,但你的回答帮助我找到了答案,这是一个有效的方法,所以谢谢。(:很高兴我能帮上忙。如果其他人遇到与你有相同问题的问题,最好添加你提出的解决方案。