Refused to get unsafe header "content-disposition"

Refused to get unsafe header "content-disposition"

八月 17, 2023 评论 10 阅读 444 点赞 0 收藏 0

在 JavaScript 中,如果你在使用 XMLHttpRequest 或 fetch 请求时遇到 "Refused to get unsafe header "content-disposition"" 错误,这是由于浏览器的安全策略的限制导致的。浏览器会禁止 JavaScript 访问某些特定的响应头信息,其中包括 "content-disposition"。

解决这个问题有以下几种方法:

  • 服务器端配置:如果你有控制服务器端代码的权限,可以尝试在服务器响应中添加以下安全标头:
Access-Control-Expose-Headers: Content-Disposition

这将允许浏览器将 "content-disposition" 响应头暴露给 JavaScript。

  • 代理请求:如果你无法修改服务器端代码,可以尝试使用代理请求来绕过此限制。通过将请求发送到代理服务器,并从代理服务器获取响应,在代理响应中访问 "content-disposition" 响应头。这样就不会触发浏览器的安全限制。

  • 使用后端处理:另一种方法是将文件下载逻辑放到后端处理,并提供一个下载链接给前端。当用户点击下载链接时,在后端生成文件,并设置合适的 "content-disposition" 响应头来提示浏览器下载文件。这样就避免了前端 JavaScript 直接访问响应头信息。

需要根据具体情况选择合适的解决方法。如果你没有服务器端控制权,可能需要使用代理请求或后端处理来解决此问题。

*
*
*