项目场景:
在用QT加载百度卫星在线地图,出来的效果不是很理想
问题描述
卫星地图加载出来是这个样子:
QT里爆出是这个:[17392:14368:0506/210453.126:INFO:CONSOLE(0)] “Access to Image at ‘file://maponline1.bdimg.com/starpic/?qt=satepc&u=x=2896;y=837;z=14;v=009;type=sate&fm=46&app=webearth2&v=009&udt=20230427’ from origin ‘file://’ has been blocked by CORS policy: Invalid response. Origin ‘file://’ is therefore not allowed access.”, source: file:///C:/Users/JacketX/Documents/build-untitled7-Desktop_Qt_5_12_12_MSVC2017_32bit-Debug/debug/html/baidumap.html (0)
原因分析:
根据错误信息,此错误是因为file://xn–maponline1-tm3pl37bl62fu6xek5a.bdimg.xn–com-lb7eq51hor2b06a,但是该资源的响应头没有正确设置 Access-Control-Allow-Origin,导致请求被CORS策略阻止。
解决方案:
- xn–htmlmaponline1-pd7vvps47jjycq70nst1ahk3gzsl94go8d.bdimg.com
- 如果需要使用,该资源必须返回正确的Access-Control-Allow-Origin响应头,例如:
Access-Control-Allow-Origin: *
来允许file://协议访问 - 也可以使用HTTP服务器避免跨域问题
- 使用HTML的CORS机制,资源需要返回正确响应头:
解决方案:
暂时还未解决