【Python】關于Django如何處理前后端分離時的POST請求

在目前的大環境趨勢下,前后端分離已經是項目開發的主流,而Django在后端領域也受到眾多程序員的青睞,那么在前后端分離開發時,經常會遇到django本身內置的csrf攔截保護機制
本文將會簡述如何在前后端分離時解決csrf問題。

我們提供的服務有:網站制作、成都網站建設、微信公眾號開發、網站優化、網站認證、銅陵ssl等。為近千家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的銅陵網站制作公司

1,
在我們使用AJAX發送POST請求時,首先要先去請求csrf的Token驗證,也就是說,先提前去獲取token,再去做自己的POST請求操作
那么,就需要單獨編寫一個函數來獲取token:

//獲取csrftoken

前端AJAX:

    function get_csrftoken() {
        return new Promise((resolve, reject)=>{
            $.ajax({
               url:"get_csrf_token/",
               type:"GET",
               success:function(data){
                   resolve(data);
               },
               error: function (err) {
                   console.log(err);
               }
           });
        });
    }

后端Django:

獲取csrf

def get_csrf_token(request):
return JsonResponse({'csrf_token': get_token(request) or 'NOTPROVIDED'})

在自己的項目中添加這倆即可,每次在做POST請求時,記住先調用其獲取token。
然后來到第二步:
2,

// 這里是一個添加用戶信息為例的代碼

async function insertUser() {

        {#獲取CSRF驗證#}
        let res = await get_csrftoken();
        console.log(res.csrf_token);
        let csrf_token = res.csrf_token;
  
        let flag = confirm("請確認信息是否正確,無誤請點確定");
        if (flag) {
            $.ajax({
                headers: {
                    Accept: "application/json; charset=utf-8",
                    **// 這里注意,為什么要獲取token,原因就是需要添加一個請求頭,如下:**
                    "X-CSRFToken": csrf_token
                },
               url:"insertuser/",
               type:"POST",
               data:{
                   "select":{
                    "username":$("#username").val(),
                    "password":$("#password").val(),
                    "age":$("#age").val(),
                    "gender":$("#gender").val()
                }},
               success:function(data){
                   alert(data.data);
                   window.location.href = "/"
               },
               error: function (err) {
                   console.log(err);
               }
           })
        }

  }

細心的朋友可能已經發現,我使用了promise和async+await,
因為這里是兩個請求,存在異步請求問題,我們必須保證優先獲取到token。

本文題目:【Python】關于Django如何處理前后端分離時的POST請求
文章鏈接:http://m.kartarina.com/article0/dsogcio.html

成都網站建設公司_創新互聯,為您提供網站收錄、云服務器定制開發、微信公眾號、網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站托管運營
主站蜘蛛池模板: 国产aⅴ激情无码久久久无码| 亚洲人成影院在线无码观看| 久久精品无码专区免费东京热| 日韩爆乳一区二区无码| 免费A级毛片无码A∨中文字幕下载| av无码久久久久不卡免费网站| 亚洲人成影院在线无码观看 | 无码av人妻一区二区三区四区 | 精品无码人妻一区二区三区18| 亚洲一级Av无码毛片久久精品| 麻豆国产精品无码视频| 一本大道无码日韩精品影视_| 免费无码毛片一区二区APP| 国产成人无码精品久久久免费| 欧洲成人午夜精品无码区久久| 国产亚洲大尺度无码无码专线| 亚洲av午夜精品无码专区| 亚洲精品无码成人AAA片| 人妻无码一区二区三区| 无码国产精品一区二区免费虚拟VR | 亚洲av永久无码精品三区在线4| 国产自无码视频在线观看| mm1313亚洲国产精品无码试看| 亚洲中文字幕久久精品无码2021 | 亚洲国产91精品无码专区| 亚洲av无码专区在线观看下载| 日韩av无码国产精品| 无码国产伦一区二区三区视频| 亚洲一区精品无码| 国模无码人体一区二区| 精品无码久久久久久久动漫 | 夜夜添无码一区二区三区| 精品无码一级毛片免费视频观看 | 在线观看免费无码专区| 国产av无码专区亚洲国产精品| 人妻无码中文字幕| 综合无码一区二区三区| 亚洲成AV人片在线观看无码| 性无码免费一区二区三区在线| 国产V亚洲V天堂无码| 日日摸日日碰夜夜爽无码|