微信小程序坑點雜談(三)一分鐘解決登錄狀態session的問題!

微信小程序坑點雜談(三)一分鐘解決登錄狀態session的問題!

一、寫在開頭

本人只是一枚小小的新手開發者,所提的問題和解答很難超過個人水平,如果對你有幫助,那就太好了!

二、發現問題
我們之前講到過,404有大概三種情況,其它兩種比較常見也容易規避,我們來看看比較複雜的第三種session登錄狀態問題。常出現在url和參數完全正確卻報了一些莫名其妙的錯誤。

三、解決問題

wx.request({
      url: '後端給你的url地址',
      data:{
		//寫想要傳遞給後端的數據
      },
      method:"POST",
      header:{
        "Content-Type": "application/x-www-form-urlencoded"//post請求必須加這個
      },
      success(res){
        console.log(res)
        if (res && res.header && res.header['Set-Cookie']) {//能拿到返回內容且拿到返回內容的header且拿到返回內容的header中的['Set-Cookie'],我們就移除原本在緩存中cookie
          wx.removeStorageSync('cookie')//移除緩存中已有的cookie,當然第一次可能沒有
          wx.setStorageSync('cookie', res.header['Set-Cookie'])//把我們新拿到的表頭放進去
        } else {
          console.log("we lost")
        }
        let cookie = wx.getStorageSync('cookie')//需要的時候從緩存拿到cookie
        app.globalData.cookey=cookie//把緩存拿到的cookie存到全局變量裏就可以在其它函數的header中使用啦
        console.log(app.globalData.cookey)
      }
    })//以上就拿到了cookie

這種就是在url和參數沒有問題的情況下,接口依然404或其它錯誤,可能是因爲request每次調用都不會保存之前的session狀態(就如果有些接口需要你登錄後才允許調用的,你也會被視爲沒有登錄而調用出錯)

  header: {
          "Content-Type": "application/x-www-form-urlencoded",
          'cookie': app.globalData.cookey
        },

拿到這個cookie我們就可以把它添加我們需要的接口的表頭中了,至此,完成!

大概就這樣了,謝謝大家~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章