小程序进行HTTP请求问题
由于公司业务要求,进行微信小程序的开发,因为比较熟悉Vue.js,所以选用了UNI-APP的框架来开发,但是也遇到了许多问题,其中困扰比较久的就是HTTP请求的问题:
刚开始的想法是直接调用uni的方法uni.request(),但是在Network会报错,code=4003,无权进行操作,查阅了很多资料才发现原来是sessionId的锅,由于微信的机制,每一次的请求都是一个新的会话,导致了sessionId每次都会更换,如果后端是有做sessionId的校验,那么就会返回无权操作的错误。
那么将sessionId固定了问题就能解决了,在小程序登录的时候从后端将sessionId返回,存储于vuex的store的状态中当做全局变量引用,那么在每一次的接口访问中,往Header里添加sessionId,不让微信服务器去更改sessionId,那么就可以成功访问接口了。
写法如下:
header: {
'Cookie': 'JSESSIONID='