【问题标题】:JavaScript - Can I show the content of a file in an iFrame?JavaScript - 我可以在 iFrame 中显示文件的内容吗?
【发布时间】:2017-06-17 01:23:26
【问题描述】:

在我的服务器 (TFS) 中,我可以通过 GET 请求访问文件并获取他的内容, 问题是响应的Content-Typeapplication/octet-stream;

当我尝试在 iFrame 中加载此文件时,我得到 下载窗口弹出窗口以保存此文件

有没有办法将这种情况下的文件内容放在 iFrame 中?或以其他方式在 Javascript 中获取此文件内容(XMLHttpRequest 与 application/octet-stream 存在一些问题;)?

【问题讨论】:

  • 更改 Content-Type 标头。除此之外,没有提供足够的细节
  • 当我把它改成 "json" 时,我会得到文件的详细信息,当它被创建时......当它的文本响应是内容类型是八位字节流时​​

标签: javascript html iframe tfs content-type


【解决方案1】:

这取决于您访问的文件的类型。当您收到“application/octet-stream”响应时,您可能会访问一些二进制文件或无法识别文件扩展名。在这种情况下,您将收到以下响应,提示代理下载文件:

content-type: application/octet-stream;
content-disposition: attachment

详情请见HTTP Standard

如果此标头用于带有 application/octet- 的响应中 流内容类型,隐含的建议是用户代理 不应该显示响应,而是直接输入一个`save response 作为...的对话框。

如果您正在访问一些通用文件类型,您会得到不同的响应。例如:

a.txt -> content-type →text/plain;
a.ps -> content-type →application/json;
1.png -> content-type →image/png;

【讨论】:

    【解决方案2】:

    无法更改 TFS 中 get 请求响应的内容类型。默认为 application/octet-stream。

    【讨论】:

    • 不确定我应该如何获取附件的内容。我正在尝试从构建任务中读取附件。我得到了链接,但是当我尝试获取内容时,我得到了 401.2 错误。有什么建议吗?
    • 您的意思是要从构建任务中读取内容以构建摘要页面吗?这里有一个示例代码,允许用户呈现从构建中的特定任务上传的自定义数据结果供您参考:Build Results Enhancer
    • 好吧,我使用了这个例子,但它缺少重要的部分。如何从链接中读取数据。如果您可以查看此文件github.com/Microsoft/vsts-extension-samples/blob/master/… 中的第 32 行,我得到了我上传但无法阅读的附件的 url。当我使用 $Get 或 ajax get 时出现 401.2 错误
    猜你喜欢
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多