问题描述:
使用PicGo和gitee搭建图床时使用图床的图片发生跨域错误(访问自己博客时图片加载不出来)如下:
1 | Failed to load resource: the server responded with a status of 403 (Forbidden) |
403 forbidden,说明了这个网络资源这样获取是被拒绝的,那么通过简单的谷歌,找到了相关的解决方法,并去实际尝试
解决方法
方法一:
在html页面添加
1 | <meta name="referrer" content="no-referrer" /> <!--img标签预加载网络图片--> |
方法一原理:
1.HTML的 标签提供了 HTML 文档的元数据。元数据不会显示在客户端,但是会被浏览器解析。这也是为什么加在mardown文章里不会看到这段代码的原因。
2.HTML 的 name 属性规定了元数据的名称,这里我们用到的是referer属性,这个属性的作用是让服务器判断来源页面,即用户是从哪来的,很多时候referer被当做防盗链来使用,服务器根据你的访问来源判断是否应该让你下载这个资源,如果你的来源不和规范,比如是个恶意爬虫,那么就会产生403错误。
3.到这里,content=”no-referrer”的意义就呼之欲出了,既然我们想拿到这个资源但被服务器认出来之后又被拒绝了,那么伪装一下,不告诉服务器不就行了?所以,这里content的no-referer就是表示不发送引用数据,隐藏自己的来源信息。这样,图片就能正常显示了。
方法二:
在请求到的图片链接前面加上 https://images.weserv.nl/?url=(这是一个专门缓存图片的网址)