今日遇到的问题Access-Control-Expose-Headers与

前几天在新公司遇到一个问题,返回response中有文件下载的功能,即body中为文件流。使用angular的$http.get的方式获取。服务端使用了cors(我不知道是什么,大概查了下,是解决跨域的服务端封装的问题)。通过使用fiddler截包,header应该有content-disposition这个参数,然后包含文件名filename,能够把下载的流文件直接命名使用。但是$http.get方法回调中,第三个参数,headers中获取不到content-disposition;

然后,作为菜鸟,之后求助同事,一开始没找到怎么回事,后来他想起来之前改代码时,封装的response返回修改过,返回 header中缺少了Access-Control-Expose-Headers。

(3)Access-Control-Expose-Headers

该字段可选。CORS请求时,XMLHttpRequest对象的getResponseHeader()方法只能拿到6个基本字段:Cache-ControlContent-LanguageContent-TypeExpiresLast-ModifiedPragma。如果想拿到其他字段,就必须在Access-Control-Expose-Headers里面指定。上面的例子指定,getResponseHeader('FooBar')可以返回FooBar字段的值。

摘自阮一峰-跨域资源共享 CORS 详解

看完之后,大概了解到content-disposition是额外的header  需要加到Access-Control-Expose-Headers中浏览器才会主动解析(或许我认为的还有偏差)。

还有就是

近日,美国计算机学会(ACM)宣布,英国国计算机科学家、万维网(World Wide Web)的发明者、MIT和牛津大学教授蒂姆 · 伯纳斯 – 李爵士(Tim Berners-Lee)获得2016年度图灵奖

刚好解决这个问题,也看到朋友圈有人发这个,所以,很有感触。

HTTP,WEB,改变了这个世界获取和展示信息的方式。

发布者

Angus

你来了,真好, 希望能帮到你 或许,你也能认识我 哈哈

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据