你的图片可能是这样被CORB“拦截”的
问题
最近学习一个uniapp+nodejs的项目,前端写了这样一个标签
<image :src="info.imgUrl" ></image>
按理说不应该有什么问题,但运行在 Chrome 后图片却加载不出来,打开控制台看到被CORB策略拦截了,详细信息:
Cross-Origin Read Blocking (CORB) 已屏蔽 MIME 类型为 application/json 的跨域响应
http://localhost:3000/privateImg/xxxxx.bmp。
如需了解详情,请参阅 https://www.chromestatus.com/feature/5629709824032768。
之前最多也就是看到过跨域引起CORS策略的拦截,还没见识过CORB是什么,于是就查阅了资料:
- 什么是
CORB?
全称为Cross-Origin Read Blocking(跨源读取阻塞),是一种判断是否要在跨站资源数据到达页面之前阻断其到达当前站点进程中的算法,降低了敏感数据暴露的风险。 - 为什么会产生
CORB?
跨域标签<script>和<img>等请求回来的数据 MIME type (比较常见的有application/javascript、application/json等)与跨域标签应有的 MIME 类型不匹配时,浏览器会启动CORB保护数据不被泄漏,被保护的数据类型只有 html、xml 和 json。
这时我看到参考文章中关于 内容嗅探技术(MIME sniffing)的介绍,被屏蔽图片的 MIME Type 是 application/json,于是认为浏览器把 MIME Type 推测错了,因此去给服务器的响应添加了首部X-Content-Type-Options: nosniff用来告知浏览器停止内容嗅探,果不其然还是不行。
思路在误区渐行渐远 -> 想着图片被拦截了去关闭CORB策略就该好了,然后用了几种办法都关不掉(可能是新版 Chrome 已经不允许关闭了)。
解决
这个拦截的出现,实际上是因为 image 标签请求的图片资源,后端并没有找到,返回了一个 application/json 类型的 json 反馈信息,于是自然而然被CORS策略拦截了。
重新调整后端的静态资源路由后,问题就解决了。
(没有进行接口测试吃的亏)
参考资料:https://juejin.cn/post/6844903831373889550
你的图片可能是这样被CORB“拦截”的的更多相关文章
- SpringMVC 拦截器(interceptors)对样式(css),JavaScript(js),图片(images)链接的拦截
因为在web.xml配置了 <servlet-mapping> <servlet-name>appServlet</servlet-name> <url-pa ...
- ftp如何预览图片 解决方案
下载使用 server-U ,开启 HTTP 服务,输入 http://ip:端口 后,登录ftp账号密码,可选使用 基于java的应用 web client 或 FTP Voyager JV,来预览 ...
- 在viewPager中双指缩放图片,双击缩放图片,单指拖拽图片
我们就把这个问题叫做图片查看器吧,它的主要功能有: (项目地址:https://github.com/TZHANHONG/ImageViewer/releases/tag/1.0,里面的MyImage ...
- highchart导出功能的介绍更改exporting源码
本案利用highchar作为前端,展示数据的图形效果,结合spring+springmvc来完成数据图片的导出. jsp引入文件: <script src="${pageContext ...
- 粗略整理的java面试题
1.垃圾回收 是回收的空闲堆空间 只有在cpu空闲并且堆空间不足的情况下才回收 2.threadlocal 就是为线程的变量都提供了一个副本,每个线程运行都只是在更新这个副本. Threadloc ...
- 在360、UC等浏览器,img不加载原因
问题:图片在360浏览器不被加载,在UC浏览器强制不显示. 前言不多说,直接上图. 360浏览器显示情况: UC浏览器显示情况: 由以上两张截图可以看到,在360浏览器,banner图片处根本没有加载 ...
- 从.Net到Java学习第十一篇——SpringBoot登录实现
从.Net到Java学习系列目录 通过前面10篇文章的学习,相信我们对SpringBoot已经有了一些了解,那么如何来验证我们的学习成果呢?当然是通过做项目来证明啦!所以从这一篇开始我将会对之前自己做 ...
- SpringMVC框架六:拦截器
拦截器的概念就不介绍了: SpringMVC中拦截器的执行规则: 一个小示例展示: 我搞两个拦截器: 第一个: package org.dreamtech.springmvc.interceptor; ...
- 我的WafBypass之道(upload篇)
0x00 前言 玩waf当然也要讲究循序渐进,姊妹篇就写文件上传好了,感觉也就SQLi和Xss的WafBypass最体现发散性思维的,而文件上传.免杀.权限提升这几点的Bypass更需要的是实战的经验 ...
随机推荐
- 2022年了有哪些值得推荐的.NET ORM框架?
前言: 最近有很多同学问我.NET方面有哪些好用的ORM框架,我觉得这方面的介绍网上应该会介绍的比较全面文章,于是我想搜一篇全面的介绍文章发给他们结果我发现网上说来说去基本上就是那几个,于是就有了这篇 ...
- 关于SpringCloud中,使用 Hystrix的问题
springCloud升级后.导致 HtystrixDashboard 默认的servlet请求路径修改了 将业务的微服务使用 HtystrixDashboard 仪表盘第一次监控时出现 Unable ...
- django模型01
1.开发流程 - 配置数据库 - 定义模型类 - 生成迁移文件 - 执行迁移生成数据表 - 使用模型类进行增删改查操作 2.ORM - **概述**:对象->关系->映射 - **任务** ...
- 帆软和思迈特软件Smartbi产品的详细对比
一.设计模式上 (1)finereport V10.0需要下载一个600M的设计器,采用类excel的设计模式,打开时间有20S,反复测试几次,基本都在20多秒.(测试电脑core I5 4核8G). ...
- 在Linux发行版上使用7zip的方法
学习如何在 Ubuntu 和其他 Linux 发行版中安装和使用 7zip 7zip介绍 7Zip(更适当的写法是 7-Zip)是一种在 Windows 用户中广泛流行的归档格式.一个 7Zip 归档 ...
- 一、ES6基础
一.ECMAScript和JavaScript关系 JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提交给标准化组织 ECMA,希望这种语言能够成为国际标 准,但 ...
- JZ-064-滑动窗口的最大值
滑动窗口的最大值 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值.例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值 ...
- C#控制台输入密码星号显示
在Program类中的Main方法里: 1 public class Program 2 { 3 static void Main(string[] args) 4 { 5 Console.Write ...
- WPF启动屏幕SplashScreen
SplashScreen类为WPF应用程序提供启动屏幕. 方法一:设置图片属性 1. 添加启动图片到项目中 2. 设置图片属性的Build Action为SplashScreen 方法二:编写代码 1 ...
- linux作业--第四周
1.自建yum仓库,分别为网络源和本地源 所有Yum仓库的配置文件均需以 .repo 结尾并存放在/etc/yum.repos.d/目录中的 [base] : yum仓库唯一标识符,避免与其它仓库冲突 ...