您的位置:首頁技術文章
文章詳情頁

在django中使用post方法時,需要增加csrftoken的例子

瀏覽:3日期:2024-10-21 09:08:15

從百度查到在django中,使用post方法時,需要先生成隨機碼,以防止CSRF(Cross-site request forgery)跨站請求偽造,并稍加修改:

注:這是一個js文件,需要引入到html模板中:<script src='https://rkxy.com.cn/static/javascript/post_need_csrftoken.js'></script>

這樣做比使用{% csrf_token %}方便

$(function () { $.ajaxSetup({ headers: { 'X-CSRFToken': getCookie('csrftoken') } });}); // 為防止CSRF(Cross-site request forgery)跨站請求偽造,發post請求時需要在cookie中創建隨機碼 function getCookie(name) { var arr,reg=new RegExp('(^| )'+name+'=([^;]*)(;|$)'); /*上面這句話相當于: var arr; var reg=new RegExp('(^| )'+name+'=([^;]*)(;|$)'); */ if(arr=document.cookie.match(reg))return decodeURI(arr[2]); //ECMAScript v3 已從標準中刪除了 unescape() 函數,并反對使用它, // 因此應該用 decodeURI() 和 decodeURIComponent() 取而代之。 elsereturn null; }

補充知識:Django解決前端/客戶端POST失敗提示csrf_tokenxxx的問題

解決:把settings.py里把MIDDLEWARE中的

django.middleware.csrf.CsrfViewMiddleware

刪除掉就好了

如果你不想刪除,并且你是web端的話,在form表單里加一句 {%csrf_token%} 就好了

<form> {%csrf_token%} <!-- 其它代碼 --></form>

這個CRSF主要也是起一種保護驗證的作用,看個人需要來保留吧

如果是安卓或者其它端,建議之間采取前者把那行代碼刪掉就行了

以上這篇在django中使用post方法時,需要增加csrftoken的例子就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Django
国产综合久久一区二区三区