亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

項(xiàng)目中遇到的一些問(wèn)題

Aomine / 2281人閱讀

摘要:紀(jì)錄下前幾天遇到的問(wèn)題前幾天一個(gè)項(xiàng)目中寫(xiě)了個(gè)登錄功能算是入行以來(lái)寫(xiě)的第一個(gè)功能遇到幾個(gè)問(wèn)題稍微記錄下簡(jiǎn)單介紹這項(xiàng)目只調(diào)用了和還有一些插件我基本都是在寫(xiě)原生的方法用的少運(yùn)用保持用戶登錄狀態(tài)原理就不贅述了百度很多登錄發(fā)送賬號(hào)密碼給后端后端返回前

紀(jì)錄下前幾天遇到的問(wèn)題

前幾天一個(gè)項(xiàng)目中寫(xiě)了個(gè)登錄功能,算是入行以來(lái)寫(xiě)的第一個(gè)功能,遇到幾個(gè)問(wèn)題稍微記錄下

簡(jiǎn)單介紹這項(xiàng)目,只調(diào)用了layui和jquery 還有一些插件,我基本都是在寫(xiě)原生,jq的方法用的少

運(yùn)用token保持用戶登錄狀態(tài)
token原理就不贅述了,百度很多,登錄發(fā)送賬號(hào)密碼給后端,后端返回token前端存儲(chǔ)到cookie或者本地存儲(chǔ)中,
在發(fā)送請(qǐng)求時(shí),在請(qǐng)求頭中帶上token就可以,其實(shí)功能很簡(jiǎn)單,但是遇到一點(diǎn)小問(wèn)題,下面簡(jiǎn)單說(shuō)下
因?yàn)檫@項(xiàng)目與之前一個(gè)項(xiàng)目調(diào)用的同一個(gè)后端數(shù)據(jù),之前的項(xiàng)目也有登錄功能第一個(gè)問(wèn)題就是,
這兩項(xiàng)目同時(shí)打開(kāi)時(shí),新項(xiàng)目頁(yè)面cookie存儲(chǔ)的token會(huì)多一個(gè)
這問(wèn)題我還是沒(méi)解決,最后在新項(xiàng)目用 window.sessionSorage 存儲(chǔ)token

判斷token失效,并且讓用戶重新登錄
token失效的話,接口會(huì)返回code:401,
所以這需求也很簡(jiǎn)單,只要判斷接口返回code是否是401,一個(gè)if判斷就出來(lái)了,但是在項(xiàng)目里面有很多接口,而且還不是我一個(gè)人書(shū)寫(xiě),所以我就考慮ajax有沒(méi)有方法可以統(tǒng)一處理ajax的返回?cái)?shù)據(jù)

然后我就開(kāi)始扒文檔+百度;
找到 $.ajaxSetup 這方法 代碼貼下
百度搜也有一篇比較好的文章寫(xiě)的比較詳細(xì)

文章

    $.ajaxSetup({
        complete: function(XMLHttpRequest, textStatus) {
             try {
                 var jsonData = JSON.parse(XMLHttpRequest.responseText)
                 if (jsonData.code === 401) {
                     window.location.href = "login.html";
                     sessionStorage.removeItem("token");
                   } else {
                   
                   }
               } catch (e) {
                console.log(e);   
               }
        }
    })

補(bǔ)充下這文章沒(méi)說(shuō)到的,也可能只有我一個(gè)人遇到這問(wèn)題..
$.ajaxSetup 這方法不是success之前觸發(fā)的..
是在success里的邏輯觸發(fā)完才會(huì)觸發(fā) 這個(gè)方法
我遇到的問(wèn)題就是 如果token失效 success里的處理函數(shù)就要會(huì)報(bào)錯(cuò),因?yàn)楂@取數(shù)據(jù)完之后我沒(méi)加if判斷
來(lái)校驗(yàn)獲取的數(shù)據(jù)是否是正確,當(dāng) success 里的處理函數(shù)報(bào)錯(cuò)時(shí),就會(huì)直接拋出錯(cuò)誤,不執(zhí)行后面的方法,
這坑,我找了蠻久的,可能是因?yàn)椴?/p>

ajax的簡(jiǎn)單封裝
關(guān)于ajax的封裝網(wǎng)上有很多,就不細(xì)說(shuō),我就貼下我自己的封裝方法,記錄下
就一個(gè)拼接請(qǐng)求的服務(wù)器地址,以后如果要等會(huì)服務(wù)器,就不用一個(gè)一個(gè)改
還有一個(gè)就是其你去頭帶上token
設(shè)置默認(rèn)提交是josn 其實(shí)有點(diǎn)弊端,得后端配合 接口提交的參數(shù)都是json形式,而不是表單提交
我這里跟另外一個(gè)前端說(shuō)話,如果是運(yùn)用表單提交參數(shù)的話,就多帶帶設(shè)置請(qǐng)求頭,默認(rèn)使用json提交參數(shù)

 $.ajaxSettings.beforeSend = function(xhr, obj) {
   obj.url = baseURL + obj.url;
   $.ajaxSettings.contentType = "application/json";
   xhr.setRequestHeader("token", sessionStorage.getItem("token"))
  };

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/106001.html

相關(guān)文章

  • 我在vue-cli+webpack項(xiàng)目開(kāi)發(fā)遇到一些問(wèn)題總結(jié)

    摘要:最近用了一個(gè)月的時(shí)間快速開(kāi)發(fā)了一套管理系統(tǒng),前后端分離的開(kāi)發(fā)模式,前端采用的技術(shù)路線,頁(yè)面是第三方框架。下面總結(jié)一下我在開(kāi)發(fā)工程中遇到的一些問(wèn)題。比如我需要一個(gè)彈框插件,而上頁(yè)沒(méi)注冊(cè)。 最近用了一個(gè)月的時(shí)間快速開(kāi)發(fā)了一套管理系統(tǒng),前后端分離的開(kāi)發(fā)模式,前端采用vue-cli+webpack的技術(shù)路線,頁(yè)面UI是第三方bootstrap框架。下面總結(jié)一下我在開(kāi)發(fā)工程中遇到的一些問(wèn)題。1....

    mykurisu 評(píng)論0 收藏0
  • 項(xiàng)目開(kāi)發(fā)遇到一些問(wèn)題

    摘要:月份的時(shí)候做過(guò)一段時(shí)間的開(kāi)發(fā),之后換工作,了解到目前所在的公司是打算使用來(lái)做服務(wù)端渲染,當(dāng)時(shí)對(duì)的接觸很少,或許可以通過(guò)這個(gè)項(xiàng)目,可以讓我對(duì)有更多的了解,所以就決定接受目前這家公司的。在開(kāi)發(fā)過(guò)程中遇到了很多問(wèn)題,在這里做記錄備忘。 6月份的時(shí)候做過(guò)一段時(shí)間的vue開(kāi)發(fā),之后換工作,了解到目前所在的公司是打算使用node來(lái)做服務(wù)端渲染,當(dāng)時(shí)對(duì)node的接觸很少,或許可以通過(guò)這個(gè)項(xiàng)目,可以讓...

    Bamboy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<