尽管Firebug说“ cookie”标签下有一个csrftoken,但Django的CSRF验证仍失败。为什么?

我遵循了在StackOverflow上推荐的很多内容,但无济于事。我也尝试在html的各个地方挤压{%csrf_token%},但似乎没有一个起作用。有什么建议?这是我的Django模板输入按钮:

<input id=saveWaypoints type=button value=Save disabled=disabled>

然后触发此Javascript:

$('#saveWaypoints').click(function () {
    var waypointStrings = [];
    for (id in waypointByID) {
        waypoint = waypointByID[id];
        waypointStrings.push(id + ' ' + waypoint.lng + ' ' + waypoint.lat);
    };
    waypointStrings["csrfmiddlewaretoken"] = $('input[name=csrfmiddlewaretoken]').val();
    $.post("{% url 'waypoints-save' %}", {
        waypointsPayload: waypointStrings.join('\n')
    }, function (data) {
        if (data.isOk) {
            $('#saveWaypoints').attr('disabled', 'disabled');
        } else {
            alert(data.message);
        }
    });
});

然后在views.py中调用此视图:

def save(request):
    'Save waypoints'
    for waypointString in request.POST.get('waypointsPayload', '').splitlines():
        waypointID, waypointX, waypointY = waypointString.split()
        waypoint = Waypoint.objects.get(id=int(waypointID))
        waypoint.geometry.set_x(float(waypointX))
        waypoint.geometry.set_y(float(waypointY))
        waypoint.save()
    return HttpResponse(simplejson.dumps(dict(isOk=1)), content_type='application/json')
约瑟夫

根据Django文档,你可以把令牌作为请求的报头将其添加为有效载荷 https://docs.djangoproject.com/en/1.8/ref/csrf/#ajax

您快到了,但是您只需将其作为自己的参数发送,而不是的一部分waypointsPayload

$.post("{% url 'waypoints-save' %}", {
  csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val(),
  waypointsPayload: waypointStrings.join('\n')
}, function (data) {
  ...
});

Cookie是从中读取令牌的替代位置,而不是从中读取令牌(以防您不想在模板上添加令牌标签)。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

尽管Firebug说“ cookie”标签下有一个csrftoken,但Django的CSRF验证仍失败。为什么?

来自分类Dev

为什么编译器说接口中的公共静态字段是“最终”,尽管不是

来自分类Dev

秘密密钥在那里,尽管它说在Django中没有秘密密钥

来自分类Dev

尽管安装了torch vision pytorch库,但我收到一个错误消息,说没有名为torch vision的模块

来自分类Dev

JMeter-Api GET请求-响应说:没有呈现数据的已知方法,尽管状态码为200

来自分类Dev

当有一个为什么为什么说“ RecyclerView没有LayoutManager”。请查看详细信息

来自分类Dev

为什么tkinter说我有一个由网格管理的奴隶?

来自分类Dev

为什么 Windows 说我有一个 64 位处理器,而它不是?

来自分类Dev

为什么一个分隔内有一个分隔,尽管它们的代码表示相反的含义?

来自分类Dev

SDWebImage说“ URL未找到”(尽管存在)

来自分类Dev

为什么我的编译器总是说我有一个catch块而没有先前的try块

来自分类Dev

尽管Seq中有一个sortBy方法,为什么在ParSeq中却没有sortBy方法?

来自分类Dev

尽管迭代了所有键,为什么我的“for 循环”只作用于最后一个?

来自分类Dev

为什么 pip 声称我有一个不兼容的模块,尽管版本正确(并破坏了 docker build)?

来自分类Dev

为什么Valgrind为一个非常简单的程序说杀死9?

来自分类Dev

为什么我的mysqli_connect无法连接?它说当一个是

来自分类Dev

为什么不编译器抛出一个错误说“不return语句”?

来自分类Dev

JS为什么说这个功能不是一个功能

来自分类Dev

为什么Set-Location说“找不到一个接受参数'...'的位置参数”

来自分类Dev

为什么var_dump()说一个字符串是一个对象?

来自分类Dev

为什么go编译器说一个结构在满足时不满足一个接口?

来自分类Dev

为什么当我只有一个公共类和类文件时说我的公共类没有定义

来自分类Dev

一个函数混淆,没有做什么它说,它

来自分类Dev

编译器说有一个无法到达的语句,我在做什么错?

来自分类Dev

为什么说0个论点通过

来自分类Dev

NimbusAPI响应超时,尽管它说已收到

来自分类Dev

当Resharp说“无法修改文档”时,我需要一个解决方法。有人知道为什么这样做以及如何解决吗?

来自分类Dev

为什么NSUserDefaults说我要添加非属性列表对象?它只是一个具有NSDictionary,NSNumber和NSData的NSArray

来自分类Dev

尽管使用 copts 添加了一个额外的包含目录,为什么 Bazel 没有找到我的包含文件?

Related 相关文章

  1. 1

    尽管Firebug说“ cookie”标签下有一个csrftoken,但Django的CSRF验证仍失败。为什么?

  2. 2

    为什么编译器说接口中的公共静态字段是“最终”,尽管不是

  3. 3

    秘密密钥在那里,尽管它说在Django中没有秘密密钥

  4. 4

    尽管安装了torch vision pytorch库,但我收到一个错误消息,说没有名为torch vision的模块

  5. 5

    JMeter-Api GET请求-响应说:没有呈现数据的已知方法,尽管状态码为200

  6. 6

    当有一个为什么为什么说“ RecyclerView没有LayoutManager”。请查看详细信息

  7. 7

    为什么tkinter说我有一个由网格管理的奴隶?

  8. 8

    为什么 Windows 说我有一个 64 位处理器,而它不是?

  9. 9

    为什么一个分隔内有一个分隔,尽管它们的代码表示相反的含义?

  10. 10

    SDWebImage说“ URL未找到”(尽管存在)

  11. 11

    为什么我的编译器总是说我有一个catch块而没有先前的try块

  12. 12

    尽管Seq中有一个sortBy方法,为什么在ParSeq中却没有sortBy方法?

  13. 13

    尽管迭代了所有键,为什么我的“for 循环”只作用于最后一个?

  14. 14

    为什么 pip 声称我有一个不兼容的模块,尽管版本正确(并破坏了 docker build)?

  15. 15

    为什么Valgrind为一个非常简单的程序说杀死9?

  16. 16

    为什么我的mysqli_connect无法连接?它说当一个是

  17. 17

    为什么不编译器抛出一个错误说“不return语句”?

  18. 18

    JS为什么说这个功能不是一个功能

  19. 19

    为什么Set-Location说“找不到一个接受参数'...'的位置参数”

  20. 20

    为什么var_dump()说一个字符串是一个对象?

  21. 21

    为什么go编译器说一个结构在满足时不满足一个接口?

  22. 22

    为什么当我只有一个公共类和类文件时说我的公共类没有定义

  23. 23

    一个函数混淆,没有做什么它说,它

  24. 24

    编译器说有一个无法到达的语句,我在做什么错?

  25. 25

    为什么说0个论点通过

  26. 26

    NimbusAPI响应超时,尽管它说已收到

  27. 27

    当Resharp说“无法修改文档”时,我需要一个解决方法。有人知道为什么这样做以及如何解决吗?

  28. 28

    为什么NSUserDefaults说我要添加非属性列表对象?它只是一个具有NSDictionary,NSNumber和NSData的NSArray

  29. 29

    尽管使用 copts 添加了一个额外的包含目录,为什么 Bazel 没有找到我的包含文件?

热门标签

归档