我是django-piston的新手,由于Django的CSRF保护,无法使POST webservice调用工作。如何允许Web服务调用绕过CSRF保护并仍允许其余网页保留它们?
答案 0 :(得分:3)
找到解决方案:https://bitbucket.org/jespern/django-piston/issue/82/post-requests-fail-when-using-django-trunk,归功于Brian Zambrano。
我觉得有点烦人,这已经有两年了,补丁已经创建,但仍未合并到最新来源。
要解决此问题,请将补丁应用于您的piston / resource.py文件,方法是添加 self.csrf_exempt = getattr(self.handler,'csrf_exempt',True),如下所示:
self.handler = handler()
+ self.csrf_exempt = getattr(self.handler, 'csrf_exempt', True)
if not authentication:
self.authentication = NoAuthentication()
答案 1 :(得分:0)
为什么你需要这样做? CSRF是一个简单的域名检查...但如果你真的需要它,答案就在文档中:https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#csrf-protection-should-be-disabled-for-just-a-few-views