在本地跑一切都挺好的,但是部署后,安卓图片可以正常显示,ios不行

后来用微信调试工具调式发现报了警告,然后我就怀疑是这个警告导致的图片不显示

Mixed Content:是为了浏览器的安全性而引入的,解释:在https中,如果引入了http资源,浏览器会认为这是不安全的资源,将会默认会阻止

而且在开发H5中ios和android中存在一起区别,比如http 和https的混用。ios上http 和https不能混用,android上无影响。解决的办法是使用统一的协议。

也看了一下接口返回来的图片地址,能显示的确实是https,显示不出来的url是http

这里有两种解决办法

第一种:

简单粗暴,直接在头部引入(public/index.html)加上就是强制性把所有的http改成https

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

第二种:

就是forEach循环一下,把http或者https手动去除一下,这样请求回来的资源会根据你目前是https还是http自动加上

比如返回来的图片是这个

http://cdn1.qqzby.net/product/img/20220115143255104.jpg

去除http

//cdn1.qqzby.net/product/img/20220115143255104.jpg

至此部署后ios图片不显示问题就解决了

但是隔天,我想本地调试的时候,跟往常一样

 打开链接,就报错了....

 仔细冷静下来看了一下报错信息

https://172.0.9.107:8080 

是的,就是昨天加了那个meta标签,强制性把http都给你转成https了

所有本地调式的时候,我就把meta注释,等要部署的时候再放出来~

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐