给第三方推送数据,希望返回json,结果设置的地址触发下载文件,需要捕获到后告警。
你说的前端浏览器上触发下载?触发下载的本质是响应头的responseType,浏览器能够解析就给你预览了,不能解析就给你触发下载了,所以服务端设置好response的contentType,就可以控制浏览器的行为
仅需要判断响应头是否包含Content-Disposition
即可,参考https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Content-Disposition
与其他Content-Type
的任何响应头都没有半毛钱关系
15 回答6.8k 阅读
2 回答3.3k 阅读✓ 已解决
3 回答7k 阅读✓ 已解决
3 回答3.1k 阅读✓ 已解决
5 回答4.7k 阅读
3 回答5.1k 阅读
4 回答2.3k 阅读
要想让浏览器打开地址栏变成下载,有两个条件二选一满足即可:
content-type
头指定),如application/octet-stream
,这样就算是js,json这样原本可以在浏览器打开的文件,只要控制这个头一样可以让浏览器变下载Content-Disposition:attachment
,无论是什么 content-type,一律下载顺便补充一下,
content-disposition
头还可以控制下载文件名是什么