收藏
回答

小程序真机调试,http请求后端接收不到referer?开发者工具请求referer正常接收。

wx.request,post 请求, http接口,真机调试,后端eggjs,无法获取referer;开发者工具发出的请求,eggjs可以正常获取到referer。是和http协议类型有关吗?

回答关注问题邀请回答
收藏

4 个回答

  • 社区技术运营专员-小柿子
    社区技术运营专员-小柿子
    01-17

    麻烦在手机微信那里上传下日志: 我->设置->帮助与反馈右上角有个上报日志的入口,麻烦提供一下微信号,复现的具体时间点

    01-17
    有用
    回复 1
    • 宁
      06-16
      【开发者工具下没问题】,但:
      【真机调试】访问本地调试接口(192.168.1.xxx:8080),所有request header都没有,真机调试麻不麻烦?还有你的后台兼容多个入口,麻不麻烦?
      官方快点解决吧(每次必复现)
      06-16
      回复
  • 嘉辉
    嘉辉
    05-28

    你是不是没有把接口请求地址,配置在开发者后台的白名单里面?

    05-28
    有用
    回复
  • Raven R
    Raven R
    02-02

    https://developers.weixin.qq.com/s/Y90kqPmK7TeH

    我不太清楚这种问题 代码片段对解决问题能有什么帮助。。。

    代码片段 只有一句话,就是wx.request 随便朝一个本地host 发一个请求

    以下是截图,上面一段是通过devtool 发出的请求得到的ref 信息,下面一段是通过devtool 的 手机扫码后用手机访问时候获得到的 ref。

    或许仅在某些版本的手机微信,加上是本地host时会有这个问题?


    02-02
    有用
    回复
  • Admin²⁰²⁰
    Admin²⁰²⁰
    01-15

    谢邀

    referer是在header里面的

    就是常说的请求头,跟系统使用的浏览器内核有关

    referer是表示这个页面从哪里来的,就是当前页面的上级页面的url,如果这个请求不是从上级页面来的,直接请求的那么也会没这个值

    如果有这个值,而是前端没有发送,那就可能是前端相关设备删掉或者不支持传referer。

    根据你说的情况,你可以用真机打开调试模式,看真机上是请求header里面有没这个值

    类似下图:

    然后再结合调试信息打印相关LOG排查原因

    01-15
    有用
    回复 5
    • dark_dante
      dark_dante
      01-19
      你好,谢谢你的回答。我用的安卓手机进行调试,发送的请求header在开发工具中可以看到有referer,但是后端接收不到;用苹果平板调试,后端就可以接收到referer,我猜测是安卓系统在请求发出的某个节点改变了header信息。现在问题还没解决,下一步我会试下直接使用线上https的测试环境进行功能联调。
      01-19
      回复
    • Raven R
      Raven R
      02-02
      我也遇到了一样的问题。如果是本地调试,通过devtool的扫码打开开发版 的话 在服务端是无法获取到 ref 的,直接用 devtool 请求是有的。我是在今天微信升级之后出现了这个问题。通过针剂调试界面可以看到header里面是有的,但我认为这个ref 在微信往一个本地host 发的时候过滤掉了。如果是线上的,便没有这个问题。
      02-02
      回复
    • 浮生若梦
      浮生若梦
      02-03回复Raven R
      顶下把,官方太敷衍了,不去实际解决问题
      02-03
      回复
    • Raven R
      Raven R
      02-06回复浮生若梦
      我觉得这个不算什么问题,甚至可以说是feature。本地调试的时候本来验证这个就没多大意思。完全可以自己模拟,然后做个分支。比如这样
      02-06
      回复
    • 宁
      06-16
      怎么不算问题,所有request header都没有,真机调试麻不麻烦?还有你的后台兼容多个入口,麻不麻烦?
      06-16
      回复
登录 后发表内容
问题标签