javascript - 使用 Javascript 加载非 HTML 内容。是否可以?

标签 javascript html http

场景如下:

我想使用 Javascript 进行一些 HTTP API 调用,并在浏览器中加载响应。请求可能是 GETPOSTPUTDELETE,返回的响应可以是任何类型内容 - 它可能是 HTML、JSON、XML 或图像、文档、二进制内容或其他任何内容。我希望浏览器以与浏览器加载新页面时完全相同的方式处理响应。

问题是我看不到任何方式来加载我收到的任意内容。

显然可以将内容加载到 DOM 中,但这只允许我处理 HTML。 (并可能嵌入一些媒体类型,如图像等)我没有看到任何明显的方法来处理嵌入响应类型,如 JSON 和 XML,而不必为如何将每种类型呈现为 HTML 构建特殊情况。

我考虑过是否可以解决涉及框架或更改 window.location 以加载内容的问题,但我看不出有什么方法可以让它发挥作用。

是否完全有可能做我正在寻找的事情,或者您能建议任何可能有用的优雅解决方法吗?

编辑:

更多背景知识 - 这是关于 an API browser 的一些工作.我可以用 GETPOST 做我需要的事情 - 它是 PUTDELETE 很尴尬,因为我不能直接用 HTML 支持它们。目前,该实现使用了一些服务器端技巧和表单上隐藏的 _method 字段,允许将 POST 请求重载到 PUT/DELETE/OPTIONS/whatever,但理想情况下,我想将该逻辑从服务器端取出,并使用 javascript 执行等效操作。

现在我不认为它真的可行,但我希望有人能证明我是错的,或者找到一个优雅的解决方法。

最佳答案

不知道你能不能open a new window或创建 an iframe您传递给窗口或 iframe 的 URL 不是网络资源的绝对 URL,而是 a data uri .您需要嗅出响应的 MIME 类型,然后对响应主体进行编码。

不知道它是否有效,但我很想知道您是否设法实现了它。

其他要探索的东西:the BlobBuilder (HTML5 功能)并使用自定义 MIME 类型创建“无源”iframe(其中 src 只是 about:blank),然后使用 document.write 写入 iframe 文档(AppleOfMyIframe 中的一些代码可能有用)。

关于javascript - 使用 Javascript 加载非 HTML 内容。是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8488426/

相关文章:

javascript - 用于可配置依赖注入(inject)的 RequireJS 依赖覆盖

html - 如何在谷歌中索引星级?

html - Bootstrap 行和列类会相互抵消吗?

javascript - 加载延迟加载内容所需的JS脚本

c# - 如何在 Asp.Net 中调用基于 HTTP 的 Java Web 服务(Servlet)。

ruby - 如何在不访问HTTP层的情况下模拟浏览器X509客户端证书验证

node.js - 有没有办法在客户端计算机中永久缓存文件?

javascript - 每当一个 div 的一部分与另一个 div 的一部分重叠时触发一个事件

javascript - 如何使用 JavaScript 拉伸(stretch)图像以填充 div

javascript - 清除 Tampermonkey 的浏览器选项卡 RAM 使用情况吗?