从存储加载.pbf会导致CORS错误

时间:2018-02-14 14:04:11

标签: android mapbox-gl-js

我在Vue.js应用程序中使用Mapbox GL JS来渲染(.vector).pbf文件。现在,使用我们的内部API从mbtiles文件获取切片可以很好地渲染和使用切片,但是数据也应该可以脱机访问。所以我做了一个方法从mbtiles文件中获取pbf文件并将它们压缩在一起以在设备上解压缩。 (立即打包mbtiles文件是不可行的,因为它只是在一个千兆字节以下而不是一切都需要,所以我们正在提取我们需要的东西。)

现在这就是我的问题所在'使用以下结构会导致CORS错误,即使它是从本地存储加载的:

tilesUrl = "file://" + this.$root.local + "tiles/{z}/{y}/{x}.vector.pbf"

网址很有意义,看起来像这样:

file:///storage/emulated/0/Android/data/com.someCompany.someApp/files/active/tiles/{z}/{y}/{x}.vector.pbf

然而,当我构建它并尝试通过我们正在使用的webview运行它时,它会不断地抛出有关CORS的错误。但是,我们正在加载图片,视频和json。然而,仅在pbf文件上它会引发CORS错误。为什么?

1 个答案:

答案 0 :(得分:0)

即使标头位于请求上,CORS错误也会占优势,因为响应是它所需的标头。由于它无法通过file://方案应用该标头,因此它不会接受从localstorage加载的任何内容。解决方法是在设备上托管一个简单的HTTP服务器,例如AndroidAsync