检查 HTTP GET 请求返回的文件类型

Check the file type returned by an HTTP GET request

本文关键字:文件 类型 返回 请求 HTTP GET 检查      更新时间:2023-09-26

你会认为我的问题是如此普遍,以至于互联网上都会有解决方案。但我找不到任何真正回答我的问题的东西。

让我总结一下我的情况:

  • 我正在使用开放UI5。
  • 我正在编写一个从各种外部网站检索文档的应用程序。我想在我的应用程序中显示这些文档,而不是导航到它们,所以我在 iframe 中显示这些文档。没有找到任何其他方法。
  • 某些文件类型可以本机显示,例如 PDF。其他人,如 Word,不能 - 我发现显示这些的最简单方法是使用 Google Docs,这意味着从这里更改 iframe src 的 URL:

http://example.com/my-target-doc.docx

对此:

http://docs.google.com/gview?url=example.com/my-target-doc.docx&embedded=true

  • 我从中检索文档的某些外部域需要身份验证。因此,我无法将 iframe 的 src 设置为直接 http://docs.google.com/gview?url=example.com/my-target-doc.docx&embedded=true - Google 文档会尝试显示身份验证页面。我必须保留原始网址,然后在用户通过身份验证后,将文档网址替换为同一网址的 Google 文档版本。

  • 然后,我正在尝试做的是使用 iframe 的"onload"事件来获取当前加载的页面的地址,如果是 .doc/.docx/.ppt 等,请将相同的 URL 替换为 GD 版本的 URL。

  • 困难在于 URL 末尾没有指向文档的扩展名 - 我需要使用的 URL 都没有以".doc"、".ppt"或其他结尾,因此解析 URL 已出局。

所以这是我的问题:Javascript中有没有办法获取返回的内容的类型?公平地说,我很怀疑有没有。欢迎其他想法或替代方案。我仍在积极寻找一些。

谢谢!

您是否已经查看了内容类型 HTTP 标头?这可以用JS读取,但你可能必须为此异步请求文件。