小程序(或h5)无法显示阿里云服务器上的图片

这篇具有很好参考价值的文章主要介绍了小程序(或h5)无法显示阿里云服务器上的图片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如果图片服务器设置了“referer”请求头白名单,来控制防止盗链,那么可以尝试一下流程:

微信文档,明确指出“网络请求的 referer 格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 为小程序的 appid”(https://developers.weixin.qq.com/miniprogram/dev/framework/plugin/development.html#%E5%85%B6%E4%BB%96%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9),而一般使用“referer”进行防盗链。

而我们的图片服务器设置的referer白名单为“https://servicewechat.com/wxcabcdefgh123456/*”,但是微信小程序iOS版,在【刚刚启动小程序】时,image标签加载网络图片的请求,请求头“referer”却是“https://servicewechat.com/preload/page-frame.html”,不符合referer白名单规则,所以被拒绝,服务器返回的是403状态码,但是微信小程序错误日志却是404 Not Found(又是一个坑)。

把我们的图片服务器,防盗链设置referer白名单为改为“https://servicewechat.com/*”则问题解决了,就是不要加“{appid}”这部分路径。

解决方法网上还有其它方案

  • 使用images.weserv.nl方案
  • 使用no-referrer方案(h5)

1 使用images.weserv.nl方案 不需要改服务器白名单 亲测有效
小程序 unsafe-url,小程序开发问题,小程序
无法显示出来

小程序 unsafe-url,小程序开发问题,小程序

在返回的图片链接上加上前缀:https://images.weserv.nl/?url=

小程序 unsafe-url,小程序开发问题,小程序

2 使用no-referrer方案,在其它标签上也可用 暂时没测试校验过文章来源地址https://www.toymoban.com/news/detail-528088.html

<meta name="referrer" content="no-referrer" />
<img referrer="no-referrer|origin|unsafe-url" src="{{item.src}}"/>
<image referrer="no-referrer|origin|unsafe-url" src="{{item.src}}"></image>
<a href="http://example.com" referrer="no-referrer|origin|unsafe-url">xxx</a>

到了这里,关于小程序(或h5)无法显示阿里云服务器上的图片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 阿里云服务器的tcp端口无法访问(云服务厂家问题?)

    最近一台阿里云服务器的一个端口61616无法访问,在服务器内用外网地ip发现无法访问,用内网ip访问是正常的,通过技术排查: 打开商家官网的,查看该实例的【安全组策略】:是放行的没变动,官网设置排除掉。 配置云服务器内部防火墙, 云主机内的防火墙虽然是 关闭

    2024年02月02日
    浏览(34)
  • 部署在阿里云ECS服务器上的微服务项目中获取到的时间和windows的时间不一样的问题

    继上一篇文章《阿里云ECS服务器无法发送邮件问题解决方案》之后,又发现登录的时候发送邮件中的时间和自己windows上的时间不一样,大概找了一下原因,是LocaDateTime使用的时区不一样导致的远程服务器和本机时间不一致。 只需要在LocaDateTime.now()方法中传一个参数,这个参

    2024年02月07日
    浏览(42)
  • 阿里云ECS服务器无法发送邮件问题解决方案

    这篇文章分享一下自己把项目部署在阿里云ECS上之后,登录邮件提醒时的邮件发送失败问题,无法连接发送邮箱的服务器。 博主使用的springboot提供的发送邮件服务,如下所示,为了实现异步的效果,新开了一个线程来发送邮件。 过了一段时间之后,后台打印出了连接邮箱服

    2024年02月07日
    浏览(39)
  • 开启redis服务后,无法远程连接服务器上的redis的问题解决办法(Connection refused: no further information)

    远程连接在服务器上的redis服务时,总是会报错Connection refused: no further information,通过一顿查资料后,我总结了一下几个解决步骤。 1.首先通过通过命令vim ****/redis.conf打开***目录下的redis配置文件 2.对bind设置,将bind 127.0.0.1注释掉. 3.将保护模式关闭,由yes设置成no.  4.reids4.5以

    2024年02月10日
    浏览(46)
  • 解决:阿里云服务器安装宝塔后添加安全组仍无法访问

    安装宝塔很简单,登陆宝塔官网跟着教程直接安装即可。 安装成功记得保存访问地址: 切记要保存好,不然后面就找不回来了。 安装成功,直接复制链接访问发现无法进入 于是查了下,很多都是说安全组里开放一下8888端口即可。   跟着教程也开放了下接口,结果还是访问

    2024年02月11日
    浏览(44)
  • 阿里云服务器安装宝塔面板,放行端口设置安全组后,无法访问宝塔面板

    我已经在安全组里放行了相应的端口 宝塔面板也已经正确安装 但是宝塔面板仍然无法访问 第一步:远程连接服务器 第二步:切换为root用户 第三步:打开宝塔的控制面板,更改默认端口 然后依据提示输入新的端口,此处我将端口改为8889 第四步:在安全组中放行8889端口 此

    2024年02月11日
    浏览(52)
  • vscode远程服务器中文显示为数字乱码,终端无法输入中文

    最开始以为是vscode设置问题,后来发现是服务器没有安装中文包 解决方案: ① 先安装locales,这个包在Debian/Ubuntu及其衍生发行版中用作区域设置,用于设置用户语言、所在地区以及对应的一些区域变量 sudo apt install locales ② 重新设置locales相关信息 sudo dpkg-reconfigure locales 它会

    2024年01月24日
    浏览(43)
  • 给大伙讲个笑话:阿里云服务器开了安全组防火墙还是无法访问到服务

    铺垫: 某天我在阿里云上买了一个服务器,买完我就通过MobaXterm进行了ssh(这个软件是会保存登录信息的) 故事开始: 过了n天之后我想用这个服务器来部署流媒体服务,咔咔两下就部署好了流媒体服务器,于是乎开始准备测试 欸,本地机器访问没通? 这不简单,开一下安

    2024年02月03日
    浏览(40)
  • 阿里云服务器开启所有端口,防火墙关闭情况下无法访问rabbitmq 15672端口

    记录一下自己遇到的问题, 在开启所有端口且关闭防火墙 的情况下,无法访问  ,排查问题后发现是因为我直接docker pull rabbitmq,未安装RabbitMQ的web管理界面。 解决方法如下: 1、进入rabbitmq容器  2、执行 3、刷新页面即可访问  

    2024年02月16日
    浏览(40)
  • H5套壳微信小程序跳转H5以及配置服务器接口域名和业务域名

    一、H5套壳微信小程序跳转H5 基本语法: web-view src=\\\"https://你的域名\\\"/web-view 1. 其中,url必须在管理后台加进业务域名,并且是https开头的。 使用了web-view,页面将不能放置其他元素,因为web-view会铺满整个页面 电脑端调试,需要在开发者工具的项目设置里把基础库版本改为最

    2024年02月07日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包