首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django.middleware.csrf.get_token()用法

django.middleware.csrf.get_token()用法
EN

Stack Overflow用户
提问于 2013-01-17 14:43:29
回答 1查看 1.6K关注 0票数 1

考虑以下场景:在<form>中使用{% csrf_token %}加载页面。稍后,此表单的提交(包括隐藏的csrf_token)将使用ajax (post)执行,而无需重新加载页面。

据我所知,在服务器端,令牌应该发送回客户端并替换<form>中的令牌,因为令牌可以根据其寿命进行续订(顺便说一句,当令牌重新生成时?)

为了获得令牌并随响应一起发送,我考虑使用django.middleware.csrf.get_token(),但在代码中,它似乎只返回客户端发送的令牌。

那么get_token()是否会返回最新的值呢?

EN

回答 1

Stack Overflow用户

发布于 2013-01-17 19:29:33

检索js中的csrf令牌

代码语言:javascript
复制
var csrf_token = $(this).data('csrf');  // $(this) refers to your form in your html

然后:

代码语言:javascript
复制
$('#yoursubmitbutton').click(function() {
$.ajax({
            url: url,
            type: "POST",
            dataType: "json",
            data: { csrfmiddlewaretoken: csrf_token, other_data: other_data },
            success: function(data) {
                if (data['success']=='true') {
                    // Handles success
                } else {
                    // Handles failure failed.
                }

                // Any logic you want
            },
            error: function() {
                                   // Error handling
            }
        }) 
});  // click event 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14373496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档