wx.request中Header Referer的问题
发布于 5 年前 作者 pengming 10930 次浏览 来自 问答

需求:获取验证码

问题:左侧为小程序,右侧为浏览器

小程序通过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放到本地存储里,然后验证的时候再取出来提交,这样就能保证本地和服务端一致

小程序referer不可修改

回到顶部