外贸网站什么采集,深圳婚纱摄影网站建设,响应式网站欣赏,网站开发 接口还是ajax作者#xff1a;biaochenxuying转发链接#xff1a;https://github.com/biaochenxuying/blog/issues/31问题笔者网站的图片都是上传到第三方网站上的#xff0c;比如 简书、掘金、七牛云上的#xff0c;但是最近简书和掘金都开启了 防盗链#xff0c;防止其他网站访问他们…作者biaochenxuying转发链接https://github.com/biaochenxuying/blog/issues/31问题笔者网站的图片都是上传到第三方网站上的比如 简书、掘金、七牛云上的但是最近简书和掘金都开启了 防盗链防止其他网站访问他们网站上的图片了导致笔者的网站存在他们网站上的图片全挂了。具体问题就是 html 中通过 img 标签引入一个第三方的图片地址报 403 。但是这个图片地址直接复制出来在地址栏打开却是看得到的。原因官方输出图片的时候判断了来源 Referer 就是从哪个网站访问这个图片如果是你的网站去加载这个图片那么 Referer 就是你的网站地址如果我们的网站地址不在官方的白名单内所以就看不到图片了。我们做这个跳板的关键不发送 Referer也就是没有来源。那么官方那边就认为是从浏览器直接访问的所以就能加载正常的图片了。referrer在某些情况下出于一些原因网站想要控制页面发送给 server 的 referrer 信息的情况下可以使用这一 referer metadata 参数。参数referer 的 metedata 属性可设置 content 属性值为以下集合neveralwaysorigin结果如果 referer-policy 的值为 never删除 http head 中的 referer如果 referer-policy 的值为 default如果当前页面使用的是 https 协议而正要加载资源使用的是普通的 http 协议则将 http header 中额 referer 置为空如果 referer-policy 的值 origin只发送 origin 部分如果 referer-policy 的值为 always不改变 http header 中的 referer 的值举例如果页面中包含了如下 meta 标签所有从当前页面中发起的请求将不会携带 referer如果页面中包含了如下 meta 标签则从当前页面中发起的 http 请求将只携带 origin 部分解决方案初步方案在 标签里加 metareferrer 的 content 设置为 nerver这样存在第三方网站上的图片在你的网站上就可以访问了。但是还有一个问题就是如果你的网站需要发送你的网站地址的那上面的的设置就不行了比如用到了百度统计。那上面的设置会导致百度统计的代码加载不了因为它需要发送你的网站地址给百度统计。既要不发送 你的网站地址又要发送你的网站地址那么怎么办呢 最终的解决方案先在 html 上设置 referrer 为 always这样之后首屏加载的时候加载了百度统计的代码了能正常统计访客数据了。不需要网站地址的时候再把 referrer 设置为 nerver加个延时 setTimeout 再把 referrer 的 content 值设置为 nerver 。或者 在有图片的地方再把 referrer 的 content 值设置为 nerver 。const referrer document.getElementById(referrer);referrer.setAttribute(content, never)这样就能解决第三方图片防盗链又能用到百度统计了。最后希望大家不要恶意盗用、滥用第三方的 CDN 资源行为。比如掘金 CDN 本是一件公益性质的社区服务为便大家在自己的技术博客中使用掘金 CDN 的图片并没有开启防盗链。但是就是因为某些人恶意盗用、滥用第三方的 CDN 资源所以掘金社区不得不开启防盗链来减少损失和规避风险 https://juejin.im/post/5cefb6a3f265da1b95703b9d作者biaochenxuying转发链接https://github.com/biaochenxuying/blog/issues/31