页面代码就这样,起了个服务,然后打开这个页面,发现img加载不出来,这个ftp服务器也是在本机,直接在浏览器访问ftp://10.181.186.93/img/111.jpg
就能访问得到,在页面中就不行:
是跨域的原因吗,不大能理解:
请问这是怎么回事,应该怎么解决这个问题,如果是跨域,在不添加js代码的情况下,可以怎么解决?用请求拦截转发可以吗?
页面代码就这样,起了个服务,然后打开这个页面,发现img加载不出来,这个ftp服务器也是在本机,直接在浏览器访问ftp://10.181.186.93/img/111.jpg
就能访问得到,在页面中就不行:
是跨域的原因吗,不大能理解:
请问这是怎么回事,应该怎么解决这个问题,如果是跨域,在不添加js代码的情况下,可以怎么解决?用请求拦截转发可以吗?
浏览器禁止了 在非ftp页面上引用ftp资源,目的似乎是为了安全原因,防止某种跨站攻击的bug利用。
在Chrome的Console中你可以看到相关的提示信息。
Chrome:
Drop support for subresources with legacy protocols. (removed)
We should block requests from HTTP/HTTPS documents that target "legacy" schemes (e.g. "ftp://my-awesome-ftp-server.com/yay.tiff"). That is, theftp://
image referenced in https://jsbin.com/petonig/edi... would not load, as the document itself is not served fromftp://
.
https://www.chromestatus.com/...
Firefox:
Block ftp subresource requests inside http(s) pages
你确定图片的协议是使用FTP
?而不是http
或者https
之类的?FTP
一般是上传或者下载文件用的,而且一般都要登录授权,别人的FTP服务器
怎么能顺便访问呢。你把图片路径的ftp
改为http
试试。另外搜索一些有关FTP
的知识,你说的那个直接在浏览器访问那个路径能看到图片,其实应该相当于直接下载了那张图片
对于这个问题我的第一感觉就是,错误的使用方式。但是自己对ftp,平常用的多但是了解的不多,所以不知道为什么通常不被用来直接在web端使用,可能和安全有关把。
如果你的ftp没有设置权限之类的东西,那么估计是ftp服务器做了些控制,类似阿里的oss,通常可以设置refer的,可以通过这个控制到资源只能被特定的refer进行访问,而浏览器直接访问可以打开是因为这个时候refer就是他自己当然可以了
13 回答12.9k 阅读
8 回答2.7k 阅读
2 回答5.1k 阅读✓ 已解决
5 回答1.3k 阅读
3 回答2.2k 阅读✓ 已解决
5 回答1.5k 阅读✓ 已解决
3 回答2.2k 阅读
< img src="ftp://username:password@192.168.0.1:21/11/xx.jpg">