收藏
回答

image组件是否支持设置请求header

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 需求 image 客户端 6.6.7 2.3.0

- 需求的场景描述(希望解决的问题)

    image组件的src路径在访问远程图片时,存在远程服务器需验证请求session及对应权限的情况,验证不通过时则禁止下载图片.而目前小程序只发现wx.request和wx.downloadFlie方法可以在header里设置cookie传sessionid.如果通过这两上方法来实现的话,就太麻烦了,尤其是一个页面要用多个image标签显示多张图片时.

    想问一下,image组件是否能支持设置header参数,以便客户端请求图片时传送sessionid进行身份验证.

- 希望提供的能力

    如果不支持,那建议尽快支持,这样,通过image标签即可解决,而无需再写大量的js代码和setData(尤其是一个页面加载多个图片时).


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

5 个回答

  • 阿白
    阿白
    2022-04-22

    解决办法:

    <image src="data:image/png;base64,balabala=="></image>

    示例:

    // wxml
    <image src="{{base64src}}"></image>
    
    // 验证码图片 vcode.php
    echo 'data:image/png;base64,'.base64_encode($image);
    
    // wxjs
    let self = this;
    wx.request({
      url: '/vcode.php?t=base64', // 验证码图片直接返回 base64
      header: {
        'Cookie': 'PHPSESSID=2j3t2l2u05bg5avt7j76n83l44', // session 在这里
      },
      success(res){
        self.setData({
          base64src: res,
        });
      },
    });
    


    给个赞?

    2022-04-22
    有用 1
    回复 1
    • 神经蛙
      神经蛙
      2023-07-31
      如果这是一个图床或者有大量图片加载,还要再去实现Image就有的懒加载功能,这就太过麻烦。
      2023-07-31
      回复
  • 2018-10-18

    确实有点苦恼,还有video也是

    2018-10-18
    有用
    回复
  • Stars.
    Stars.
    2018-10-17

    不能直接拼在链接上去做?

    2018-10-17
    有用
    回复 2
    • 治辰科技于鲁宁
      治辰科技于鲁宁
      2018-10-17

      将sessionid不放在header里,而做为参数传是没有用的

      2018-10-17
      回复
    • Stars.
      Stars.
      2018-10-17回复治辰科技于鲁宁

      主要对现在的支持做相应的改动,等微信支持,不知道等到什么时候。用request、downloadFlie、setData。用户体验也不好

      2018-10-17
      回复
  • 治辰科技于鲁宁
    治辰科技于鲁宁
    2018-10-17

    这个需求太重要了!现在使用wx.downloadFile方法时总是报:"当前系统代理不是安全代理 是否信任".设置了不验证https证书也没用!网上找了好多方法也没解决. 没办法,wx.uploadFile和wx.downloadFile两个方法都用不了了!

    2018-10-17
    有用
    回复
  • 半寸灰
    半寸灰
    2018-10-17

    现在不支持的

    2018-10-17
    有用
    回复 1
    • KN95
      KN95
      2018-11-27

      官方人员?这个不支持太扯蛋了吧


      2018-11-27
      回复
登录 后发表内容