微信小程序使用Cookie

微信小程序不支持Cookie,因此,需要借助小程序的数据缓存来实现Cookie.

环境: mpvue + fly.js

登录成功后,在处理登录验证的method里,加入以下内容保存Cookie:

wx.setStorageSync("sessionid",response.headers["set-cookie"][0])

我对fly.js的配置和拦截器单独设置,放在src/utils/fly.js里,内容如下:

/**
 * Created by kevin on 2019-10-11.
 * http配置
 */

import store from '@/store/index'
import * as types from '@/store/mutation-types'

var Fly=require("flyio/dist/npm/wx")
var fly=new Fly

// fly配置
fly.config.timeout=5000
// 这个url一定要找到nginx的相应location ^~ 部分
fly.config.baseURL = 'https://i.foo.cn/api/v2/'

// http request 拦截器
fly.interceptors.request.use(
    (request) => {
      if (store.state.user) {
        request.headers.Authorization = `isLogin`
        request.headers.Cookie = wx.getStorageSync("sessionid")
      }
      return request
    },
    err => {
      return Promise.reject(err)
    },
  )
  
// http response 拦截器
fly.interceptors.response.use(
    (response) => {
        //只将请求结果的data字段返回
        return response.data
    },
    (err) => {
        //发生网络错误后会走到这里
        //return Promise.resolve("ssss")
    }
)

export default fly

然后在全局的main.js里,加入以下内容:

import fly from '@/utils/fly'

Vue.prototype.$http=fly

现在可以用this.$http.get(or post等)发起请求了.

万事大吉,enjoy it!

上一篇:好程序员Web前端教程之React原理解析及优化技巧


下一篇:$http_x_forwarded_for 和 \$proxy_add_x_forwarded_for区别