访问图片出现403的解决办法

在写小程序的时候,访问一个网址获取图片,但是显示会出现403(防止盗链)的错误.
总结了一下,有两种方法是可以解决这个问题的:

  • 使用images.weserv.nl方案
  • 使用no-referrer方案
第一种:使用images.weserv.nl方案
getImage(url){
    console.log(url);
    // 把现在的图片连接传进来,返回一个不受限制的路径
    if(url !== undefined){
        return url.replace(/^(http)[s]*(\:\/\/)/,‘https://images.weserv.nl/?url=‘);
    }
}

把图片路径直接传进去,替换一下原来urlhttp/https.或者直接在图片url前加上https://images.weserv.nl/?url=
如:

https://images.weserv.nl/?url=http://img.zcool.cn/community/01d881579dc3620000018c1b430c4b.JPG@3000w_1l_2o_100sh.jpg

原图片的http://是可以省略的(与上面的getImage函数是一样的结果)

https://images.weserv.nl/?url=mg.zcool.cn/community/[email protected]_1l_2o_100sh.jpg
第二种:使用no-referrer方案

这种方案不仅针对图片的防盗链,还可以是其他标签.
在前端页面头部添加一个meta

<meta name="referrer" content="no-referrer" />

referrer的几种状态

a标签的referrer

<a href="http://example.com" referrer="no-referrer|origin|unsafe-url">xxx</a>

img/image标签的referrer

<img referrer="no-referrer|origin|unsafe-url" src="{{item.src}}"/>
<image referrer="no-referrer|origin|unsafe-url" src="{{item.src}}"></image>
说明

如果我们是访问的gif图片,使用第一种方案是没有gif效果的,只能显示静态图片.这个时候推荐大家使用第二种.亲测可以完美展示gif效果.

from:https://blog.csdn.net/tiantang_1986/article/details/83748782

原文地址:https://www.cnblogs.com/youmingkuang/p/10205569.html

时间: 2024-10-20 14:21:52

访问图片出现403的解决办法的相关文章

Wampserver局域网手机访问提示403错误解决办法

一.问题记录 本机Wampserver开发环境,通过手机访问本地站点,提示403错误,如下图: 二.解决办法 403错误往往是权限问题导致,调整apache的站点目录访问权限即可 #编辑apache的httpd.conf配置文件 将原来的Require local替换为Require all granted: 注意几种常用格式,自己可以灵活配置: Require local 仅允许本地访问: Require all denied 拒绝所有访问: Require all granted 允许所有访

[经使用有效]Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法

sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法 最近几天从网上找了几个asp.net的登录案例想要研究研究代码,结果在用 Sql Server2005附加数据库文件时弹出错误信息:如下图: ,一时无解,遂求助于百度谷歌,经过各种试验,特将解决办法整理于此,希望能帮到大家,同时如果有好的意见大家多多交流啊! 方案一:切换登录方式 出现这种情况是由于用“混合验证方式”(SQL Server身份验证)登录数据库造成的,只要将登录方式改为“windows身

阿里云服务器无法访问80端口的解决办法

1: 阿里云服务器无法访问80端口的解决办法 当我们搭建服务器时候,无论80,3306,21,等端口本地服务器上搭建环境就已经开通,但是服务器中防火墙中主要就是拦截端口的,在windows药在高级防火墙中添加站入端口一个个配置,在阿里云中还要在控制台中开通的

SQLServer2005+附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法

SQLServer2005+ 附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法 我们在用Sql SQLServer2005+附加数据库文件时弹出错误信息如下图的处理办法: 方案一:切换登录方式 出现这种情况是由于用"混合验证方式"(SQL Server身份验证)登录数据库造成的,只要将登录方式改为"windows身份验证方式"登录即可解决该问题,附加成功后再换用"混合验证模式"登陆就没问题了. 方案二:修改服务 选择 所有程序

本地windows主机无法访问虚拟机里主机解决办法

一:设置虚拟机里IP,使其与本地计算机IP在同一网段 本地计算机网络IP设置如下: 虚拟机里ip为192.168.1.9 设置IP步骤请参考:Linux里如何设置IP(RED HAT) 二:将虚拟机网络连接方式设为桥接 假如,VirtualBox不能选择桥接方式,‘确定’按钮就是灰色的,即无法设置桥接方式. --解决办法 请参考VirtualBox虚拟机无法选择桥接方式 全部设置完之后,windows下的主机就能ping通虚拟机里IP了. 本地windows主机无法访问虚拟机里主机解决办法

网站域名可访问但经过搜索引擎访问不了的解决办法

今天接了个这样的活,这个自己也头一次遇到,把经验分享给大家. 网上下载的免费的asp源码,底部写着九牧科技这个公司源码,网站做好了,被百度收录发现不能访问,看着地址也没有错的,有的浏览器提示重复定向等. 解决办法: 因为这个是个asp程序,首先要在服务器或者空间设置默认首页为index.asp 找到网站程序目录inc文件夹下的conn.asp文件 把Response.Redirect "index.asp" 中的index.asp去掉即可 如下图 去掉了通过百度可以正常的访问了,有什么

服务器 | 服务器能访问,外网访问不了的解决办法

在使用华为云服务器的时候,域名解析了仍然访问不了,后来发现是云主机设置了白名单机制,需要把端口号加入白名单. 参考资料: 服务器能访问外网访问不了的情况,具体表现如下: 1.服务器环境启动正常,PHP探针文件可见,域名解析成功,服务器上输入域名可访问对应网站但外网无法访问. 2.本地局域网上搭建服务器环境,局域网IP已绑定,搭建环境那台机器访问正常局域网内其它机器均无法访问. 以上两种情况都是由windows自带的防火墙已开启但是没有添加80端口造成的 解决办法: 1.开始---设置---控制面

访问Github慢的解决办法

http://blog.csdn.net/sunsteam/article/details/63253933 http://tool.chinaz.com/dns 151.101.40.249  github.global.ssl.fastly.net 151.101.40.133  assets-cdn.github.com vi /etc/hosts C:\Windows\System32\drivers\etc yum install -y nscd /etc/rc.d/init.d/ns

elasticsearch,http://ip:9200访问不到的解决办法

现在解压elasticsearch之后,启动,通过http://localhost:9200可以访问的到,但是http://ip:9200访问不到,怎么办呢?带你解决,带你飞 修改elasticsearch-2.3.3\config\elasticsearch.yml文件 重启一下,你就可以好好的玩耍了,good luck !!!