鍍金池/ 問答/HTML/ 請(qǐng)問微信小程序有類似Vue.http.interceptors.push的全局A

請(qǐng)問微信小程序有類似Vue.http.interceptors.push的全局AJAX攔截器嗎?

  • 最近有一個(gè)需求,使用token來(lái)做微信小程序的用戶的登錄驗(yàn)證。

  • 我通過req.header里的自定義的一個(gè)字段來(lái)傳遞token給后端。

所以每一個(gè)AJAX之后都需要判斷response.header里是否有返回token?

1.如果沒有返回,那說(shuō)明不是第一次登錄、token還沒有過期
2.如果返回了一個(gè)token給我,那我就把這個(gè)token賦值在request.header里自定義的某個(gè)字段里。

但是我發(fā)現(xiàn)Vue或者JQ里都有一些AJAX的攔截器,可以全局劫持AJAX,如果微信小程序里,沒有類似的攔截器,是不是就只能多寫很多重復(fù)的代碼了呢...

希望已經(jīng)有一些經(jīng)驗(yàn)的前輩,給點(diǎn)建議,感謝了!鞠躬!

回答
編輯回答
萌面人

可以參考 WePY 中的配置, 在app.wpy中設(shè)置,
// 統(tǒng)一攔截request請(qǐng)求配置

    this.intercept('request', {
    // 發(fā)出請(qǐng)求時(shí)的回調(diào)函數(shù)
        config (p) {
             
            return p;
        },
    });
2017年9月14日 04:39
編輯回答
任她鬧

可以自己封裝用微信的request自己封裝個(gè),不想重復(fù)造輪子的話可以直接引入fly http組件,類似于vue的axios,兼容小程序還很小??梢詤⒖嘉业奈恼拢?br>http://callmesoul.cn/xiao-che...

2017年9月19日 16:25
編輯回答
陌璃

在wxrequest的基礎(chǔ)上封裝一層不就行了,
把你需要的這些公共邏輯封裝到自己的request模塊里,
所有請(qǐng)求都通過這個(gè)模塊處理,那些所謂的攔截器不也就是讓所有請(qǐng)求都通過它來(lái)處理

2018年4月23日 00:57
編輯回答
笑浮塵

我用了localstorage,做全局的攔截,畢竟token還是有時(shí)效性的,通過每次的ajax來(lái)更新localstorage中的token

2018年6月7日 04:26