我正在尝试使用Django-Angular对Django中的视图进行AJAX调用.我在这里遵循这个指南.
但是,当我发布POST时,我收到消息:CSRF验证失败.请求中止.似乎没有调用文档中action
描述的内容,因为我不需要令牌. process_something
任何人都可以发现这个问题,下面是我到目前为止所尝试的 ...
这是相关的js控制器脚本:
var in_data = {action: 'process_something', somevar: $scope.somevar}; var post_call = CbgenRestangularDjango.all('pin-verification/').post(in_data)
和形式:
和观点:
class VerificationView(JSONResponseMixin, View): # other view methods @allowed_action def process_something(self, in_data): # process input data out_data = { 'foo': 'bar', 'success': True, } return out_data
miraculixx.. 5
该post()
方法接受配置参数来传递X_CSRFTOKEN
标头:
var config = { headers : { 'X_CSRFTOKEN' : $cookies.csrf_token }}; var in_data = {action: 'process_something', somevar: $scope.somevar}; var post_call = CbgenRestangularDjango.all('pin-verification/').post(in_data, config);
在视图的模板中,表单必须包含令牌,如下所示:
注意$cookies
取决于ngCookies
(见http://docs.angularjs.org/api/ngCookies.$cookies)
该post()
方法接受配置参数来传递X_CSRFTOKEN
标头:
var config = { headers : { 'X_CSRFTOKEN' : $cookies.csrf_token }}; var in_data = {action: 'process_something', somevar: $scope.somevar}; var post_call = CbgenRestangularDjango.all('pin-verification/').post(in_data, config);
在视图的模板中,表单必须包含令牌,如下所示:
<form ...> {% csrf_token %} ... </form>
注意$cookies
取决于ngCookies
(见http://docs.angularjs.org/api/ngCookies.$cookies)