OTP等时线导出接口返回正常但无下载文件问题咨询
OTP等时线请求未触发文件下载的常见原因
- 响应头缺失下载触发字段:服务端返回GeoJSON时未设置
Content-Disposition: attachment; filename=isochrone.geojson响应头,浏览器默认将返回的JSON当做普通接口响应渲染,不会触发下载流程。 - 缺少OTP专属下载参数:OTP的等时线接口默认仅对携带
download=true参数的请求返回附件格式响应,普通无该参数的请求仅返回纯JSON内容供前端调用,不会主动触发下载。 - 响应Content-Type配置异常:返回的
Content-Type如果被设置为application/json而非application/geo+json、application/octet-stream,浏览器会默认按接口响应处理,不会触发下载。 - 前端调用逻辑缺陷(页面触发请求场景):如果是通过前端页面按钮发起请求,没有对返回的Blob流做手动下载处理(比如未动态创建a标签触发click事件保存流内容),即使接口返回正常数据也不会弹出下载框。
- 浏览器安全策略拦截:部分浏览器的安全规则会拦截本地localhost服务的自动下载请求,需手动在地址栏右侧授权下载权限,或在开发者工具网络面板确认响应内容正常。
快速验证方案
- 检查接口响应头:在浏览器开发者工具「网络」面板定位到对应请求,确认
Content-Disposition、Content-Type两个字段是否符合下载要求 - 补全请求参数:在原请求末尾拼接
&download=true后重新发起请求,观察是否触发下载 - 手动保存返回结果:确认GeoJSON内容正常返回的前提下,可直接在响应内容面板右键选择「保存为」,手动存储为
.geojson格式文件即可使用
内容的提问来源于stack exchange,提问作者Y. ELM
相关产品推荐
相关产品推荐

