使用Django和JS的“禁止(CSRF令牌丢失或不正确。):”

斜线915

我正在JS代码中使用Axios进行POST请求,以将一些信息发送到本地托管的Django服务器。我的HTML代码格式中有{%csrf_token%},但不知道如何使用Axios发送csrf令牌。

我在终端中收到此错误:“禁止(CSRF令牌丢失或不正确。):/ api / scoring / submit_score_details”。

如何在axios帖子中正确插入csrf令牌?目前,我认为JS无法像我一样读取{{csrf_token}}。我一直在搜索Stack,但似乎大多数人都在使用jQuery或其他类型的JS。

为了节省空间,我没有发布有效负载中的变量,但它们只是字符串。

如果将@csrf_exempt放在views.py文件中我的函数上方,则可以消除错误。

{
let payload = {
    "csrfmiddlewaretoken": "{{ csrf_token }}",
    "math_problem": problem,
    "user_answer": userInput,
    "true_answer": correctAnswer,
    "question_status": questionStatus,
}
console.log(payload);
axios.post('../api/scoring/submit_score_details', payload)
}
<div class="col text-center">
    <button id="start" type="button" class="btn btn-primary btn-lg">
        New Problem
    </button>
    <p id="math_problem"></p>
    <form id="inputForm" method="POST">
        {% csrf_token %}
        <input id="user_input" autocomplete="off" class="form-control form-control-lg" type="text" placeholder="Type your answer here">
        <input id="correct_answer" type="hidden">
    </form>
    <br>
    <button id="result_check" type="button" class="btn btn-primary btn-lg">Check</button>
    <script src={% static 'js/game_logic.js' %}></script>
</div>

{
let payload = {
    "csrfmiddlewaretoken": "{{ csrf_token }}",
    "math_problem": problem,
    "user_answer": userInput,
    "true_answer": correctAnswer,
    "question_status": questionStatus,
}
console.log(payload);
axios.post('../api/scoring/submit_score_details', payload)
}
<form id="inputForm" method="POST">
    {% csrf_token %}
    <input id="user_input" autocomplete="off" class="form-control form-control-lg" type="text" placeholder="Type your answer here">
    <input id="correct_answer" type="hidden">
</form>

斜线915

因此,我最终做了一次谷歌搜索,并问了一个朋友。我们提出了一个解决方案。

我们必须添加两行代码才能使工作正常:

axios.defaults.xsrfCookieName = 'csrftoken';
axios.defaults.xsrfHeaderName = 'X-CSRFToken';

我们也摆脱了'payload'变量,只是将所有内容放入Axios代码中。

{
        axios.defaults.xsrfCookieName = 'csrftoken';
        axios.defaults.xsrfHeaderName = 'X-CSRFToken';
        axios.post('../api/scoring/submit_score_details', {
            "math_problem": problem,
            "user_answer": userInput,
            "true_answer": correctAnswer,
            "question_status": questionStatus,
        });
        console.log(`Problem:${problem},
                     User Input: ${userInput},
                     Correct Answer: ${correctAnswer},
                     Question Status: ${questionStatus}`
                     );
    };
<div class="col text-center">
    <button id="new_problem_button" type="button" class="btn btn-primary btn-lg">
        New Problem
    </button>
    <p id="math_problem"></p>
    <form id="inputForm" method="POST">
        {% csrf_token %}
        <input id="user_input" autocomplete="off" class="form-control form-control-lg" type="text" placeholder="Type your answer here">
        <input id="correct_answer" type="hidden">
    </form>
    <br>
    <button id="result_check" type="button" class="btn btn-primary btn-lg">Check</button>
    <script src={% static 'js/game_logic.js' %}></script>
</div>

是对我们有帮助的链接。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

禁止(CSRF令牌丢失或不正确)Django错误

来自分类Dev

禁止(CSRF令牌丢失或不正确。)

来自分类Dev

Django 1.9:使用Stripe的CSRF令牌丢失或不正确

来自分类Dev

Django + VueJS:POST 403禁止-CSRF令牌丢失或不正确

来自分类Dev

CSRF令牌丢失或在Django中不正确

来自分类Dev

CSRF失败:CSRF令牌丢失或不正确

来自分类Dev

将django与邮递员{“ detail”:“ CSRF失败:CSRF令牌丢失或不正确。”}

来自分类Dev

“ CSRF失败:CSRF令牌丢失或不正确。” 在Django Rest中:UpdateModelMixin

来自分类Dev

Django:使用 AJAX 上传文件:表单表示文件输入字段为空(或 CSRF 令牌丢失或不正确)

来自分类Dev

CSRF令牌在一页上丢失或不正确

来自分类Dev

Python 请求:CSRF 令牌丢失或不正确

来自分类Dev

Django 1.9.2 + jQuery + POST-错误403-CSRF令牌丢失或不正确

来自分类Dev

Django 服务器 403(CSRF 令牌丢失或不正确)

来自分类Dev

详细信息:“ CSRF失败:CSRF令牌丢失或不正确。”

来自分类Dev

没有jQuery的Django CSRF丢失或不正确的Ajax POST(Vanilla JavaScript)

来自分类Dev

Django CSRF cookie设置不正确

来自分类Dev

在 Ubuntu Server 16.04 LTS 上安装和使用 xRDP 后图标丢失/不正确

来自分类Dev

CSRF令牌丢失或无效的Django

来自分类Dev

Rails 4 CSRF不正确

来自分类Dev

在 .net 中使用 firebase admin SDK 验证令牌 - 例外:“$ID 令牌中的段数不正确。”

来自分类Dev

Django CSRF令牌丢失或错误错误

来自分类Dev

禁止F#编译器警告:可能的缩进不正确:该令牌已超出上下文

来自分类Dev

反演和不正确使用Stream.reduce

来自分类Dev

不正确使用ParentDataWidget-行和容器

来自分类Dev

Ember:使用http-mock和不正确的JSON

来自分类Dev

Flask-Restx和Swagger授权在标头中发送不正确的令牌

来自分类Dev

使用moment.js显示不正确的日期

来自分类Dev

使用node.js的ImageMagic裁剪大小不正确

来自分类Dev

Azure诊断(SDK 2.5)中的ETW事件使用不正确/丢失的架构记录

Related 相关文章

  1. 1

    禁止(CSRF令牌丢失或不正确)Django错误

  2. 2

    禁止(CSRF令牌丢失或不正确。)

  3. 3

    Django 1.9:使用Stripe的CSRF令牌丢失或不正确

  4. 4

    Django + VueJS:POST 403禁止-CSRF令牌丢失或不正确

  5. 5

    CSRF令牌丢失或在Django中不正确

  6. 6

    CSRF失败:CSRF令牌丢失或不正确

  7. 7

    将django与邮递员{“ detail”:“ CSRF失败:CSRF令牌丢失或不正确。”}

  8. 8

    “ CSRF失败:CSRF令牌丢失或不正确。” 在Django Rest中:UpdateModelMixin

  9. 9

    Django:使用 AJAX 上传文件:表单表示文件输入字段为空(或 CSRF 令牌丢失或不正确)

  10. 10

    CSRF令牌在一页上丢失或不正确

  11. 11

    Python 请求:CSRF 令牌丢失或不正确

  12. 12

    Django 1.9.2 + jQuery + POST-错误403-CSRF令牌丢失或不正确

  13. 13

    Django 服务器 403(CSRF 令牌丢失或不正确)

  14. 14

    详细信息:“ CSRF失败:CSRF令牌丢失或不正确。”

  15. 15

    没有jQuery的Django CSRF丢失或不正确的Ajax POST(Vanilla JavaScript)

  16. 16

    Django CSRF cookie设置不正确

  17. 17

    在 Ubuntu Server 16.04 LTS 上安装和使用 xRDP 后图标丢失/不正确

  18. 18

    CSRF令牌丢失或无效的Django

  19. 19

    Rails 4 CSRF不正确

  20. 20

    在 .net 中使用 firebase admin SDK 验证令牌 - 例外:“$ID 令牌中的段数不正确。”

  21. 21

    Django CSRF令牌丢失或错误错误

  22. 22

    禁止F#编译器警告:可能的缩进不正确:该令牌已超出上下文

  23. 23

    反演和不正确使用Stream.reduce

  24. 24

    不正确使用ParentDataWidget-行和容器

  25. 25

    Ember:使用http-mock和不正确的JSON

  26. 26

    Flask-Restx和Swagger授权在标头中发送不正确的令牌

  27. 27

    使用moment.js显示不正确的日期

  28. 28

    使用node.js的ImageMagic裁剪大小不正确

  29. 29

    Azure诊断(SDK 2.5)中的ETW事件使用不正确/丢失的架构记录

热门标签

归档