网页中访问不到图片服务器上的图片

页面代码就这样,起了个服务,然后打开这个页面,发现img加载不出来,这个ftp服务器也是在本机,直接在浏览器访问ftp://10.181.186.93/img/111.jpg就能访问得到,在页面中就不行:

是跨域的原因吗,不大能理解:

请问这是怎么回事,应该怎么解决这个问题,如果是跨域,在不添加js代码的情况下,可以怎么解决?用请求拦截转发可以吗?

阅读 12.6k
5 个回答
新手上路,请多包涵

< img src="ftp://username:password@192.168.0.1:21/11/xx.jpg">

浏览器禁止了 在非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, the ftp:// image referenced in https://jsbin.com/petonig/edi... would not load, as the document itself is not served from ftp://.

https://www.chromestatus.com/...


Firefox:
Block ftp subresource requests inside http(s) pages

https://bugzilla.mozilla.org/...

你确定图片的协议是使用FTP?而不是http或者https之类的?
FTP一般是上传或者下载文件用的,而且一般都要登录授权,别人的FTP服务器怎么能顺便访问呢。你把图片路径的ftp改为http试试。另外搜索一些有关FTP的知识,你说的那个直接在浏览器访问那个路径能看到图片,其实应该相当于直接下载了那张图片

对于这个问题我的第一感觉就是,错误的使用方式。但是自己对ftp,平常用的多但是了解的不多,所以不知道为什么通常不被用来直接在web端使用,可能和安全有关把。

如果你的ftp没有设置权限之类的东西,那么估计是ftp服务器做了些控制,类似阿里的oss,通常可以设置refer的,可以通过这个控制到资源只能被特定的refer进行访问,而浏览器直接访问可以打开是因为这个时候refer就是他自己当然可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题