Django CSRF 检查因 Ajax POST 请求而失败

2023-11-22

我可以通过我的 AJAX 帖子获得一些遵守 Django 的 CSRF 保护机制的帮助。我已按照此处的说明进行操作:

http://docs.djangoproject.com/en/dev/ref/contrib/csrf/

我已经准确地复制了该页面上的 AJAX 示例代码:

http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax

我设置了一个警报打印内容getCookie('csrftoken')之前xhr.setRequestHeader调用,它确实填充了一些数据。我不确定如何验证令牌是否正确,但我很高兴它正在查找并发送某些内容。

但 Django 仍然拒绝我的 AJAX 帖子。

这是我的 JavaScript:

$.post("/memorize/", data, function (result) {
    if (result != "failure") {
        get_random_card();
    }
    else {
        alert("Failed to save card data.");
    }
});

这是我从 Django 看到的错误:

[2011 年 2 月 23 日 22:08:29] “POST /memorize/ HTTP/1.1” 403 2332

我确信我错过了一些东西,也许很简单,但我不知道它是什么。我搜索过 SO 并看到了一些关于关闭 CSRF 检查以通过以下方式查看我的信息csrf_exempt装饰器,但我觉得没有吸引力。我已经尝试过并且它有效,但如果可能的话,我宁愿让我的 POST 按照 Django 设计预期的方式工作。

以防万一它有帮助,这是我的观点的要点:

def myview(request):

    profile = request.user.profile

    if request.method == 'POST':
        """
        Process the post...
        """
        return HttpResponseRedirect('/memorize/')
    else: # request.method == 'GET'

        ajax = request.GET.has_key('ajax')

        """
        Some irrelevent code...
        """

        if ajax:
            response = HttpResponse()
            profile.get_stack_json(response)
            return response
        else:
            """
            Get data to send along with the content of the page.
            """

        return render_to_response('memorize/memorize.html',
                """ My data """
                context_instance=RequestContext(request))

感谢您的回复!


如果您使用$.ajax函数,您只需添加csrf数据体中的令牌:

$.ajax({
    data: {
        somedata: 'somedata',
        moredata: 'moredata',
        csrfmiddlewaretoken: '{{ csrf_token }}'
    },
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django CSRF 检查因 Ajax POST 请求而失败 的相关文章

  • 如何在Python中同时运行两只乌龟?

    我试图让两只乌龟一起移动 而不是一只接着另一只移动 例如 a turtle Turtle b turtle Turtle a forward 100 b forward 100 但这只能让他们一前一后地移动 有没有办法让它们同时移动 有没有
  • Python 2.7 中的断言对我来说不起作用示例assertIn

    我的 Mac 上安装了 python 2 7 通过在终端中运行 python v 进行验证 当我尝试使用任何新的 2 7 断言方法时 我收到 AtributeError 我看过http docs python org 2 library u
  • Mac OS X 中文件系统的 Unicode 编码在 Python 中不正确?

    在 OS X 和 Python 中处理 Unicode 文件名有点困难 我试图在代码中稍后使用文件名作为正则表达式的输入 但文件名中使用的编码似乎与 sys getfilesystemencoding 告诉我的不同 采取以下代码 usr b
  • 工作日重新订购 Pandas 系列

    使用 Pandas 我提取了一个 CSV 文件 然后创建了一系列数据来找出一周中哪几天崩溃最多 crashes by day bc DAY OF WEEK value counts 然后我将其绘制出来 但当然它按照与该系列相同的排名顺序绘制
  • 如何在 Python 中加密并在 Java 中解密?

    我正在尝试在 Python 程序中加密一些数据并将其保存 然后在 Java 程序中解密该数据 在Python中 我像这样加密它 from Crypto Cipher import AES KEY 1234567890123456789012
  • Django while 循环

    我想知道是否有任何方法可以在 django 中执行 while 循环 我认为这就是我所追求的 我想做的是一个嵌套的 ul li 列表 该列表是由 for 循环中的 for 循环生成的 但由于第二个 for 循环中的某些元素有更多的子节点 我
  • 结构差异 sudo() run('sudo 命令')

    我想知道函数之间有什么区别sudo 和函数run sudo u user smth 文档上有 sudo 在所有运行方式上都是相同的 除了它总是换行 调用 sudo 程序中的给定命令以提供超级用户 特权 但有几次 sudo cmd 提示我输入
  • Django send_mail SMTPSenderRefused 530 与 gmail

    一段时间以来 我一直在尝试使用 Django 从我正在开发的网站接收电子邮件 现在 我还没有部署它 并且我正在使用Django开发服务器 我不知道这是否会影响它 这是我的 settings py 配置 EMAIL BACKEND djang
  • AJAX:检查字符串是否为 JSON?

    我的 JavaScript 有时会在这一行崩溃 var json eval this responseText 当争论时会导致崩溃eval 不是 JSON 在进行此调用之前有什么方法可以检查字符串是否为 JSON 我不想使用框架 有什么方法
  • Django 中所有应用程序的基本模板

    我有一个包含 2 个应用程序的项目 project blog templates index html polls templates index html project templates base html index html 现在
  • SMTP_SSL SSLError: [SSL: UNKNOWN_PROTOCOL] 未知协议 (_ssl.c:590)

    此问题与 smtplib 的 SMTP SSL 连接有关 当与 SMTP 无 ssl 连接时 它正在工作 在 SMTP SSL 中尝试相同的主机和端口时 出现错误 该错误仅基于主机 gmail 设置也工作正常 请检查下面的示例 如果 Out
  • 如何在 pandas 中使用 read_fwf 跳过空行?

    I use pandas read fwf http pandas pydata org pandas docs stable generated pandas read fwf htmlPython pandas 0 19 2 中的函数读
  • django 翻译:msgfmt:找不到命令

    我已经使用 wiki 脚本 webfaction 安装了 OSQA 现在我想编译一个消息文件 但出现以下错误 django msgfmt command not found 命令 输出 ls apache2 bin lib osqa osq
  • 使用“默认”环境变量启动新的子进程

    我正在编写一个构建脚本来解析依赖的共享库 及其共享库等 这些共享库在正常情况下是不存在的PATH环境变量 为了使构建过程正常工作 让编译器找到这些库 PATH已更改为包含这些库的目录 构建过程是这样的 加载器脚本 更改 PATH gt 基于
  • 返回表示每组内最大值的索引的一系列数字位置

    考虑一下这个系列 np random seed 3 1415 s pd Series np random rand 100 pd MultiIndex from product list ABDCE list abcde One Two T
  • Anaconda 无法导入 ssl 但 Python 可以

    Anaconda 3 Jupyter笔记本无法导入ssl 但使用Atom终端导入ssl没有问题 我尝试在 Jupyter 笔记本中导入 ssl 但出现以下错误 C ProgramData Anaconda3 lib ssl py in
  • 在 Django 查询中使用 .extra(select={...}) 引入的值上使用 .aggregate() ?

    我正在尝试计算玩家每周玩游戏的次数 如下所示 player game objects extra select week WEEK games game date aggregate count Count week 但姜戈抱怨说 Fiel
  • 混淆矩阵不支持多标签指示符

    multilabel indicator is not supported是我在尝试运行时收到的错误消息 confusion matrix y test predictions y test is a DataFrame其形状为 Horse
  • Django 与谷歌图表

    我试图让谷歌图表显示在我的页面上 但我不知道如何将值从 django 视图传递到 javascript 以便我可以绘制图表 姜戈代码 array Year Sales Expenses 2004 1000 400 2005 1170 460
  • 从 pandas DataFrame 中删除少于 K 个连续 NaN

    我正在处理时间序列数据 我在从数据帧列中删除小于或等于阈值的连续 NaN 时遇到问题 我尝试查看一些链接 例如 标识连续 NaN 出现的位置以及计数 Pandas NaN 孔的游程长度 https stackoverflow com que

随机推荐

  • 使用 css 按对角线分割双色调背景

    我正在尝试使用 css 创建一个背景 其中一侧是纯色 另一侧是纹理 两者被对角线分开 我希望这是 2 个独立的 div 因为我计划使用 jQuery 添加一些动作 如果您单击右侧 灰色三角形会变小 如果您单击左侧 纹理三角形会变小 就像窗帘
  • Safari 为 Silverlight (NPAPI) 计划的生命周期是怎样的

    Chrome 已经放弃了 NPAPI silverlight 支持 Firefox 宣布将于 2016 年底停止对 NPAPI 支持 https blog mozilla org futurereleases 2015 10 08 npap
  • 如何从 MSI“文件”表中提取数据(文件计数)

    在我们的构建过程中 当前有可能将基于非代码的文件 例如图像文件 添加到我们的 Web 项目中 但不包含在 WiX 构建的 MSI 安装程序中 为了帮助防止这种情况 我想在 WiX 项目的 AfterBuild 目标中执行以下操作 获取所有已
  • 在 UWP Xaml 中创建并填充 NxN 网格

    我正在尝试创建一个UWP益智游戏 我想将图片切成n个部分 然后在网格中显示这些部分 我的问题是 如何强制某种 NxN 风格 现在我必须最大化窗口才能看到 3x3 网格 如果我缩小任一侧 它将收敛到 2 列 1 列网格 有办法处理这个问题吗
  • Ionic 4 Angular 路由器导航并清除上一页的堆栈/历史记录

    我正在使用 Ionic 4 和 Angular 路由器开发一个应用程序 我想导航到另一个页面并清除页面堆栈 在 Android 原生中 它是这样的 Intent intent new Intent NewActivity this Main
  • 带有 attr_accessor 的类上的 Ruby instance_eval

    我了解之间的基本区别instance eval and class eval 但我在玩的时候发现了一些奇怪的事情attr accessor 这是一个例子 A Class new A class eval attr accessor x a
  • 如何在 Markdown 中为 PDF 文档添加图像作为页眉/页脚

    我想将图像作为页眉和页脚 与我的组织的视觉标识保持一致 添加到 PDF 报告中 我已经设法在 Sweave 中做到这一点 但我也希望能够仅使用 Markdown 来做到这一点 我可以使用插入图像 footer H R Footer pdf
  • C# .NET - 固定证书颁发机构 - 我做得正确吗?

    我的软件使用 HTTPS 连接连接到 Dropbox 以检索一些敏感数据 我想固定证书颁发机构以防止中间人攻击 到目前为止我有以下代码 static bool VerifyServerCertificate object sender X5
  • 独立于AWS Lambda函数的Python子进程

    我已成功创建一个读取和写入 RDS 的 Lambda 函数 app1 我的Lambda函数是用python2 7编写的 并作为压缩包上传 我在与 RDS 和 Lambda 函数相同的 VPC 中的 EC2 实例上创建并测试了压缩包 接下来
  • CSS 中的负边距如何工作以及为什么是 (margin-top:-5 != margin-bottom:5)?

    垂直定位元素的一个常见技巧是使用以下 CSS item position absolute top 50 margin top 8px half of height height 16px 当在 Chrome 中的指标视图中看到时 您会看到
  • 如何在 SVG 矩形中放置文本并使其居中

    我有以下矩形
  • git删除了所有内容,如何恢复文件和文件夹

    这是我第一次使用git 我想将现有的项目导入github 然后所有内容都被删除了 搜索答案后 我认为 git 在 git pull 后删除了文件 我正在尝试恢复文件和文件夹 但我找不到如何执行此操作 我做了下一个 jesus jesus K
  • 数值向量运算符重载+右值引用参数

    我有下面的数值向量模板类 用于数值计算的向量 我正在努力让它成为可能D A B C所有变量都是Vector对象 A B and C不应修改 我的想法是使用Vector operator Vector B 这样在 希望 Rvalue 之后Ve
  • java.lang.ClassCastException:android.view.ViewGroup$LayoutParams 无法转换为 android.widget.Gallery$LayoutParams

    我正在尝试添加Fancycoverflow在我的应用程序中 它可以很好地处理静态图像 如这个例子 但我在适配器中做了一些更改 我尝试运行我的应用程序 它崩溃并显示以下错误 FATAL EXCEPTION main java lang Cla
  • 如何使用前缀/后缀重命名?

    我该怎么做mv original filename new original filename无需重新输入原始文件名 我想象能够做类似的事情mv p new original filename也许mv original filename n
  • Java 关键字作为变量

    在VB NET中 我们可以用括号将变量名括起来 并使用关键字作为变量名 如下所示 Dim new As String C 等效项 string new 我想知道 Java 是否有相当于这样做的东西 不可以 您可以添加下划线或类似的废话 但基
  • 没有catalina.out

    我不知道如何设置以及设置什么 以便在我的计算机上的 Tomcat 上安装 catalina out 我在 Windows XP 上使用 Tomcat 6 0 28 压缩版本 要启动服务器 我只需运行startup bat file 难道我做
  • 我可以在gdb下打印gdtr和gdt描述符吗?

    I want to use gdb to see my GDTR LDTR TTR and segment register 不可见部分 x86 所以在 gdb 中我输入 p x gdtr 等 但结果是 6 值无法转换为整数 在 gdb 中
  • C 和 C++ 编码标准

    关于 C 和 C 编码标准的最佳实践是什么 是否应该允许开发人员随意将它们混合在一起 链接 C 和 C 目标文件时是否存在任何复杂情况 像传统上用 C 编写的套接字库之类的东西是否应该保留在 C 中并保存在单独的源文件中 即将 c 代码保存
  • Django CSRF 检查因 Ajax POST 请求而失败

    我可以通过我的 AJAX 帖子获得一些遵守 Django 的 CSRF 保护机制的帮助 我已按照此处的说明进行操作 http docs djangoproject com en dev ref contrib csrf 我已经准确地复制了该