wx.request中Header Referer的问题
需求:获取验证码
问题:左侧为小程序,右侧为浏览器
小程序通过wx.request获取的验证码,后端校验不通过,浏览器没有问题,有了解这块的大神吗?
是因为服务端做了“防盗链”的控制吗?
2 回复
来说说我遇到过的短信验证码的解决方法。
1)、生成短信验证码:
wx.request({ url:url, data:data, method: 'POST' , success:(res)=>{ if (res && res.header && res.header[ 'Set-Cookie' ]) { wx.setStorageSync( 'cookieKey' , res.header[ 'Set-Cookie' ]); //保存Cookie到Storage } } }) |
2)验证短信:
let cookie = wx.getStorageSync( 'cookieKey' ); let header = {}; if (cookie) { header.Cookie = cookie; } wx.request({ url:url, data:data, header: header, method: 'POST' , success:(res)=>{ } } }) |
关键点在于,生成的时候,将服务端返回的cookie放到本地存储里,然后验证的时候再取出来提交,这样就能保证本地和服务端一致