收藏
回答

wx.request中Header Referer的问题



需求:获取验证码

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

小程序通过wx.request获取的验证码,后端校验不通过,浏览器没有问题,有了解这块的大神吗?

是因为服务端做了“防盗链”的控制吗?

最后一次编辑于  2018-09-29
回答关注问题邀请回答
收藏

2 个回答

  • amourz
    amourz
    2018-10-08

    来说说我遇到过的短信验证码的解决方法。

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

    2018-10-08
    有用
    回复 1
    • UNCLE
      UNCLE
      2018-10-10

      最初我也尝试用的cookie这种方案,不过没用,我外链的网站,服务端不在本地

      2018-10-10
      回复
  • 卢霄霄
    卢霄霄
    2018-09-29

    小程序referer不可修改


    2018-09-29
    有用
    回复 3
    • UNCLE
      UNCLE
      2018-09-30

      这个我了解的,我比较疑惑的是验证码校验不通过和这个rederer有关系吗?

      2018-09-30
      回复
    • DDU
      DDU
      2020-12-11回复UNCLE
      解决了么哥们
      2020-12-11
      回复
    • DDU
      DDU
      2020-12-11
      好坑啊,我用火狐禁用referer错误和我的错误一样
      2020-12-11
      回复
登录 后发表内容