一、写在开头
本人只是一枚小小的新手开发者,所提的问题和解答很难超过个人水平,如果对你有帮助,那就太好了!
二、发现问题
我们之前讲到过,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我们就可以把它添加我们需要的接口的表头中了,至此,完成!
大概就这样了,谢谢大家~~