【问题标题】:Download file with http header下载带有 http 头的文件
【发布时间】:2014-07-17 12:54:32
【问题描述】:

我正在寻找下载带有带有 HTTP 身份验证标头的 html 链接的 PDF 文件。

没有 javascript 就无法修复它们,所以我尝试了这个:

HTML:

<a id="myLink" href="">fileName.pdf</a>

Javascript:

$("#myLink").on("click", function() {
        var xhr = new XMLHttpRequest();
        xhr.open("GET", myUrl, true);
        xhr.setRequestHeader("X-Token", authToken);
        xhr.send();
        return false;
});

文件已下载(关于网络分析),但我不知道如何在新的浏览器选项卡中打开它。我知道我们不会从 javascript 中保存文件,但我只想显示它。你有什么想法吗?

谢谢。

【问题讨论】:

  • 你不能用 javascript 做到这一点
  • 我不敢相信没有解决方案可以使用 html / javascript 显示指向受保护资源的链接?
  • XMLHttpRequest 是一个特定的用例。你的X-Token 听起来很专有。 cookie 可能会更好。
  • X-Token 不是专有的 (?) 它只是一个固定到我的 webapp 的所有 ajax http 请求的 http 标头。该值是一个身份验证键,从登录请求中检索并存储在 cookie 中。感谢您的回复,我正在寻找自动发送 cookie 值,我希望这会起作用。
  • 浏览器将发送相同路径和域的 cookie。

标签: javascript jquery html rest pdf


【解决方案1】:

解决方案是将标头值存储在 cookie 中。

使用 RestEasy 时,可以在 http 过滤器(RestEasy 2.3.7.Final 的 preProcess 函数)中读取 cookie:

request.getHttpHeaders().getCookies()

request 是一个 HttpRequest 对象。

还有一个“问题”,文件永远不会在浏览器中打开。我还不知道如何解决这个问题。

【讨论】:

    猜你喜欢
    • 2013-02-24
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-14
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多