首页 > 解决方案 > 使用 Node js 加载 iframe

问题描述

我有一个用例,我想加载一个src动态生成的 iframe。我可以使用res.redirect('https://example.org'). 但我的问题陈述是这样的。加载此页面后,我将无法执行其他操作res.sendres.render因为 node.js在将响应发送到客户端后不允许重定向

所以我需要一种机制,我可以在已经定义的 iframe 中动态加载这个 URL。然后很容易,我应该能够处理任何重定向。

[编辑]:所以我在应用程序上的流程是单击一个按钮->从节点 js 执行 API 调用以获取访问令牌-> 执行另一个 api 调用以获取动态 URL-> 在 iframe 中加载 URL。

再次重复我根本无法res.redirect在窗口中加载 url,因为在此之后我将无法执行res.send等操作,因为 node.js 不允许您执行此操作

标签: javascriptnode.jsiframe

解决方案


如果您想显示现有的带有修改的 HTML 文档,那么您不能只重定向到它。您将需要:

  1. 获取该 HTML 文档(例如,使用axios
  2. 解析它(例如用cheerio
  3. 修改它(可能也用cheerio
    • 您将需要进行所需的修改
    • 您可能需要进行其他更改(例如更新相对 URL),因为您将从不同的 URL 提供 HTML 文档
  4. send将修改后的 HTML 文档返回给客户端

或者,您可以使用客户端 JavaScript 在浏览器中修改文档。这可能涉及发出两个 HTTP 请求(一个用于修改数据,另一个用于原始 HTML 文档),并且可能受到同源策略的限制。


推荐阅读