我一直在寻找添加此安全性的具体安全原因。当我实现cors时,这是一个WTH时刻,可以看到所有标头都已返回,但我无法通过javascript访问它们。
我一直在寻找添加此安全性的具体安全原因。当我实现cors时,这是一个WTH时刻,可以看到所有标头都已返回,但我无法通过javascript访问它们。
Answers:
这是一个很好的问题。浏览http://www.w3.org/TR/cors/#simple-response-header,为什么需要或需要这样做并不清楚。
CORS规范非常重视您必须先进行请求前握手的想法,其中客户端要求一种连接类型,而服务器则响应它会允许这种连接-因此,这可能只是另一方面。
默认情况下,content-length是不允许的标头,所以我遇到了同样的问题(稍后,当我需要访问WebDAV并不得不修改允许的参数时)。CORS确实没有多大意义(对我而言) )放在首位,因此如果其中的许多内容反复无常,这也不会令我感到惊讶。
这就是为什么需要Access-Control-Expose-Headers的原因:
Access-Control-Expose-Headers(可选) -XMLHttpRequest 2对象具有getResponseHeader()方法,该方法返回特定响应标头的值。在CORS请求期间,getResponseHeader()方法只能访问简单的响应头。简单的响应头定义如下:
如果希望客户端能够访问其他标头,则必须使用Access-Control-Expose-Headers标头。此标头的值是您要公开给客户端的响应标头的逗号分隔列表。
有关更多参考,请深入链接https://www.html5rocks.com/cn/tutorials/cors/
快乐编码!