图片防盗链显示问题,通过 ReferrerPolicy 解决

介绍了图片加载不了的原因:跨域问题、防盗链机制、URL 编码问题、图片路径或参数错误、浏览器或网络问题、HTML 或 CSS 干扰;也介绍了微信小程序中对勾符号被解析成根号的问题。

图片防盗链显示问题,通过 ReferrerPolicy 解决

问题描述

问题描述:最近用百度的植物识别接口时,返回的图片地址单独在浏览器上访问可以正常预览,但是通过 img 标签加载就显示不了

图片地址为:https://bkimg.cdn.bcebos.com/pic/b3b7d0a20cf431adcbeff9b2817ebbaf2edda2cc32ad?x-bce-process=image/resize,m_lfit,w_536,limit_1/quality,Q_70

报错信息如下所示:

Failed to load response data : No data found for resource with given identifier

net::ERR_BLOCKED_BY_CLIENT

问题分析

问题分析:可能的原因有如下几种

  1. 跨域问题: 浏览器对于从不同源加载资源(如图片)有严格的同源策略限制。当图片被嵌入到另一个域名下的网页时,可能会触发跨域限制,查响应头中是否有相关的 CORS(跨源资源共享)限制。
  2. 防盗链机制: 一些图片服务器会采用防盗链措施,仅允许特定来源或经过授权的请求访问图片资源。这种情况下,即使图片链接可以直接在浏览器中打开,但当图片被嵌入到网页的<img>标签中时,服务器可能会检测到请求来源不符合其防盗链规则,从而拒绝服务。
  3. URL 编码问题: 确保在实际使用时<img>标签内的 src 属性值正确编码,特别是如果链接中包含特殊字符或非 ASCII 字符,需要确保它们被正确转码。
  4. 图片路径或参数错误: 链接中可能包含了动态参数(如时间戳、访问密钥等)用于防止缓存或进行访问控制。这些参数可能随着时间或访问次数而变化,导致复制到<img>标签的链接在一段时间后失效。
  5. 浏览器或网络问题: 清除浏览器缓存,尝试在不同的浏览器或设备上测试,以及检查网络连接状况,以排除浏览器特定行为或临时网络故障导致的加载问题。
  6. HTML 或 CSS 干扰: 检查<img>标签及其父元素的 CSS 样式,确认没有设置可能导致图片不可见的属性,如 display: none、visibility: hidden、width: 0、height: 0 等。同时,确认<img>标签本身没有语法错误,如缺失关闭斜杠/>或属性值未用引号包围等。

最后得出的结论是百度图库的防盗链机制导致的

问题解决

问题解决:添加 ReferrerPolicy 属性

js 复制代码
<img src="" referrerPolicy="no-referrer" />

uniapp小程序符号对勾解析

富文本编辑文本为:<p><span style="font-family: &quot;times new roman&quot;; font-size: 18px;">Ⅰ. Listen and judge. (听句子, 判断正"√"误"×"。)</span></p>

小程序解析效果如下:对勾被解析成了根号

钉钉中显示效果如下所示:对勾显示出来,也是根号,只是上面短一些

原因分析:

计算机中,符号对勾通常表示为 √,也可以称为根号或者平方根号

解决办法: (1)可以用 html 的符号显示:&check; 或者 &#10003;

(2)换对勾符号:✓ 这是勾 √ 这是根号

✓ 这是勾 ✗ 这是叉

最终解决效果:

(1)富文本内容:<p><span style="font-family: &quot;times new roman&quot;; font-size: 18px;">Ⅰ. Listen and judge. (听句子, 判断正"✓"误"✗"。)</span></p>

(2)小程序显示效果:

相关推荐
twodragon&primy1 分钟前
CSS布局
开发语言·前端·css·算法·html5
爱写代码的小朋友3 分钟前
HTML与CSS实现风车旋转图形的代码技术详解
前端·css·html
程序员Bears16 分钟前
深入理解现代JavaScript:从ES6+语法到Fetch API
前端·javascript·python·es6
亦世凡华、1 小时前
React--》掌握react构建拖拽交互的技巧
javascript·经验分享·react.js·react-dnd·拖拽实现
IoOozZzzz1 小时前
ES6-Set-Map对象小记
前端·javascript·es6
浪裡遊1 小时前
利用flask设计接口
前端·后端·python·flask·web3.py·httpx
松树戈1 小时前
idea结合CopilotChat进行样式调整实践
前端·javascript·vue.js·copilot
溟洵2 小时前
【C++ Qt】输入类控件(上) LineEdit、QTextEdit
c语言·前端·c++·qt·前端框架
漫无目的行走的月亮2 小时前
VUE实现todolist
前端·vue.js·elementui
change_fate3 小时前
AbortController 取消请求
javascript·http