栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Django中通过AJAX发布参数时,“ CSRF令牌丢失或不正确”

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Django中通过AJAX发布参数时,“ CSRF令牌丢失或不正确”

你可以通过两种不同的方式发出AJAX发布请求:

告诉你的视图不要检查csrf令牌。这可以通过使用decorator来完成

@csrf_exempt
,如下所示:

from django.views.decorators.csrf import csrf_exempt@csrf_exemptdef your_view_name(request):    ...

要将csrf令牌嵌入每个AJAX请求中,对于jQuery,它可能是:

$(function () {    $.ajaxSetup({        headers: { "X-CSRFToken": getcookie("csrftoken") }    });});

该getcookie函数从cookie检索csrf令牌的位置。我使用以下实现:

function getcookie(c_name){    if (document.cookie.length > 0)    {        c_start = document.cookie.indexOf(c_name + "=");        if (c_start != -1)        { c_start = c_start + c_name.length + 1; c_end = document.cookie.indexOf(";", c_start); if (c_end == -1) c_end = document.cookie.length; return unescape(document.cookie.substring(c_start,c_end));        }    }    return ""; }

另外,jQuery 有一个用于访问cookie 的插件,类似这样:

// set cookie$.cookie('cookiename', 'cookievalue');// read cookievar mycookie = $.cookie('cookiename');// delete cookie$.cookie('cookiename', null);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/404825.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号