使用Django-Angular对视图进行AJAX调用

 詹詹洋zy_431 发布于 2023-02-07 16:31

我正在尝试使用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);

在视图的模板中,表单必须包含令牌,如下所示:

{% csrf_token %} ...

注意$cookies取决于ngCookies(见http://docs.angularjs.org/api/ngCookies.$cookies)

1 个回答
  • 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)

    2023-02-07 16:33 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有