Access-Control-Expose-Headers 支持 Content-Disposition字段
时间: 2024-12-11 08:15:56 浏览: 13
TOMCAT 跨域 CORS Access-Control-Allow-Origin cors-filter
`Access-Control-Expose-Headers` 是CORS(跨域资源共享)中的一个响应头,用于指定哪些响应头可以被客户端JavaScript代码访问。默认情况下,客户端只能访问一些基本的响应头,如 `Cache-Control`, `Content-Language`, `Content-Type`, `Expires`, `Last-Modified`, 和 `Pragma`。如果你需要让客户端能够访问其他响应头,就必须使用 `Access-Control-Expose-Headers` 来显式地指定。
`Content-Disposition` 是一个常用的响应头,用于指示内容的展示方式(如内联显示或作为附件下载)。默认情况下,`Content-Disposition` 并不在CORS的默认暴露头列表中,因此如果你需要让客户端能够访问 `Content-Disposition` 头,就必须将其添加到 `Access-Control-Expose-Headers` 中。
以下是一个示例代码,展示了如何在服务器端设置 `Access-Control-Expose-Headers` 以支持 `Content-Disposition` 字段:
```python
from flask import Flask, make_response
app = Flask(__name__)
@app.route('/download')
def download_file():
headers = {
'Content-Disposition': 'attachment; filename="example.txt"'
}
response = make_response("File content", 200)
response.headers['Access-Control-Expose-Headers'] = 'Content-Disposition'
response.headers['Content-Disposition'] = 'attachment; filename="example.txt"'
return response
if __name__ == '__main__':
app.run(debug=True)
```
在这个示例中,我们使用 Flask 框架创建了一个简单的服务器端应用。当客户端请求 `/download` 路由时,服务器会返回一个带有 `Content-Disposition` 头的响应,并将其添加到 `Access-Control-Expose-Headers` 中,以便客户端可以访问该头。
阅读全文