前端引入第三方js跨域问题,如何解决?-灵析社区

世界唯一的

引入第三方js跨域问题,如何解决? 项目中引入了“天地图”js库, const script = document.createElement('script') // view 层的页面运行在 www 根目录,其相对路径相对于 www 计算 script.src = 'http://api.tianditu.gov.cn/api?v=4.0&tk=' + config.tianMapKey script.onload = this.initEcharts.bind(this) document.head.appendChild(script) 但是自己的站点是“https”协议,发布站点后,发现请求的库里面重定向到了“http”开头的地址,导致引入该库报错,导致无法使用天地图, ![](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241008/4c7829f82679a20eee80a28a92a6aab4.png) 演示: 访问官方demo:[http://lbs.tianditu.gov.cn/api/js4.0/examples.html](https://link.segmentfault.com/?enc=OVXCdb5anJok04EhoT8Xxw%3D%3D.Roto8u%2FPZVX9FdDEhYXYuNm0EuLqTcJ0Igxo9eazaPdXxB9CsKbMzYiSb7VkQm%2F3OT7sXXLIGYv51COsTKFKfQ%3D%3D) ![](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241008/dfcc3b586acea1cb05d8f07bede693c3.png) 打开f12,你能看到都是重定向(307)的http,哪怕你把例子中的http改成https也一样 ![](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241008/3808a192b6ddee389de8d10d63435266.png)

阅读量:147

点赞量:0

问AI
纠正一点,这不是跨域,是属于 内容安全策略 中的 "混合内容" (https://link.segmentfault.com/?enc=9g5Ypp1rn%2FZCbrxyvOqoFQ%3D%3D.gS9zKB1BML8HQos9wHPSqjx2Kzx0fG6JXfDUpOxDaIriY%2B4LqYDntZzjr1oIi%2BRUqq3AuKwPo8WT0EatXuL62fV9JQdnxI8RfLe%2FeWlMBA8%3D)。 如果对方站点只有 http 资源,那没办法,你只有自己在后端或者网关上像类似于跨域那样,使用反向代理来获取。 但是,这个网站看起来是有 https 的,你直接把 URL 里面的 http 换成 https 就好了啊,试了一下用 https 是可以访问的。 * "混合內容 - Web 安全 | MDN" (https://link.segmentfault.com/?enc=G0U9cCbmOzLV%2F4M7L60PdQ%3D%3D.5qntvwJ%2By8qfqbC87e630Xd72rD9MmdcANVrzhf%2BvEdz43KJ6y2dd9EBUVKPHEkRfWoia61wsCgfHdNARtQNGahdFyKRZcBPLjeEnRHO7T4%3D)