【问题标题】:Forbidden (CSRF token missing or incorrect.)禁止(CSRF 令牌丢失或不正确。)
【发布时间】:2016-07-01 17:23:42
【问题描述】:

我已经搜索过类似的问题,但似乎与我的情况无关。

为什么这段代码可以正常工作:

<form action="/signup/" method="post">
{% csrf_token %}
[FORM]
</form>

但是

<form id="signup-form">
  {% csrf_token %}
[FORM]
  </form>

<script type="text/javascript">
$(function() {
$(".submit-signup").on("click", function() {
    var user = $("#signup_form").serialize();
    console.log(user);
    $.post("/signup/", user, function() {
    });
});
});
 </script>

不工作?

这里是views.py中的注册:

@requires_csrf_token
def signup(request):
[STUFF]

return render(request, 'signup.html', {[STUFF}})

我还能提供什么帮助?基本上我正在尝试获取一个页面并将其转换为执行相同操作的模态。

谢谢!

【问题讨论】:

标签: python django


【解决方案1】:

您正在执行一个 ajax 后调用,您还需要为此提供 csrf 令牌:

$.post("/signup/", {
    user: user, 
    csrfmiddlewaretoken: '{{ csrf_token }}'
}, function() {
   // success todo
}, function(){
   // fail todo
});

【讨论】:

  • 谢谢!现在我在 csrfmiddlewaretoken 行得到“意外的令牌:”,但没有其他工作,但我得到了最初的错误消失 :)
  • @ballardjw2 你能粘贴确切的错误信息吗?
  • " (index):319 Uncaught SyntaxError: Unexpected token : " Line 319 is the csrfmiddlewaretoken line.
猜你喜欢
  • 1970-01-01
  • 2019-11-24
  • 2021-01-08
  • 2021-02-23
  • 2015-10-15
  • 2020-12-24
  • 2017-01-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多