【问题标题】:CSRF Token in Phonegap using AJAX使用 AJAX 在 Phonegap 中的 CSRF 令牌
【发布时间】:2014-04-13 05:50:24
【问题描述】:

我正在使用Phonegap 开发一个使用 Django 后端的应用程序。后端使用csrf,所以我需要我的Phonegap 应用程序使用csrf,这样它才能与Django 一起使用。

我了解到您可以通过 Ajax 使用 csrf,但我无法使其工作。

您能否举个例子告诉我如何做到这一点?

【问题讨论】:

    标签: ajax django cordova csrf


    【解决方案1】:

    在文档准备好时,只需在脚本标记中的 html 页面中捕获 csrf_token

    var csrf = {{ csrf_token }}

    然后像在你的 js 文件中一样通过 ajax 传递参数

    $.ajax({

         csrfmiddlewaretoken: csrf;
         ..//
    

    });

    【讨论】:

    • 我怎样才能将它与 POST 表单相结合?我对 html 和 javascript 编程真的很陌生(由于缺乏个人,必须是我来做这件事)
    • @Sascuash,在身份验证时,从响应中获取 csrf 令牌。用于后续请求。
    • @zigs 我不确定 phonegap 。 phonegap 是否使用 html 作为模板??
    • 嗯,phonegap 使用 Html、CSS 和 Javascript,但是在使用 {{ csrf_token }} 时它会显示文本“{{ csrf_token }}”,所以我猜它的工作方式与浏览器不同
    • 这行得通,但我必须先打电话要求新的 csrf,正如@PriyankPatel 所说,然后存储并稍后发送。
    【解决方案2】:

    扩展@Zigs 答案。

    您可以使用以下方法在服务器(Django)端生成 csrf 令牌:

    from django.middleware.csrf import _get_new_csrf_key as get_new_csrf_key
    response.set_cookie("csrftoken", get_new_csrf_key())
    

    将此 csrf 令牌用于后续 POST (ajax) 请求。

    【讨论】:

      猜你喜欢
      • 2011-06-13
      • 2018-02-22
      • 2018-12-11
      • 1970-01-01
      • 2019-01-13
      • 2019-06-01
      • 2018-02-10
      • 2012-05-28
      • 1970-01-01
      相关资源
      最近更新 更多