javascript - 使用 Node js 加载 iframe
问题描述
我有一个用例,我想加载一个src
动态生成的 iframe。我可以使用res.redirect('https://example.org')
. 但我的问题陈述是这样的。加载此页面后,我将无法执行其他操作res.send
,res.render
因为 node.js在将响应发送到客户端后不允许重定向。
所以我需要一种机制,我可以在已经定义的 iframe 中动态加载这个 URL。然后很容易,我应该能够处理任何重定向。
[编辑]:所以我在应用程序上的流程是单击一个按钮->从节点 js 执行 API 调用以获取访问令牌-> 执行另一个 api 调用以获取动态 URL-> 在 iframe 中加载 URL。
再次重复我根本无法res.redirect
在窗口中加载 url,因为在此之后我将无法执行res.send
等操作,因为 node.js 不允许您执行此操作
解决方案
如果您想显示现有的带有修改的 HTML 文档,那么您不能只重定向到它。您将需要:
- 获取该 HTML 文档(例如,使用
axios
) - 解析它(例如用
cheerio
) - 修改它(可能也用
cheerio
)- 您将需要进行所需的修改
- 您可能需要进行其他更改(例如更新相对 URL),因为您将从不同的 URL 提供 HTML 文档
send
将修改后的 HTML 文档返回给客户端
或者,您可以使用客户端 JavaScript 在浏览器中修改文档。这可能涉及发出两个 HTTP 请求(一个用于修改数据,另一个用于原始 HTML 文档),并且可能受到同源策略的限制。
推荐阅读
- java - 为 Cordapp 多次调用 Controller 类中的 HTTP 路由
- webpack - 提供带有 preact 配置的插件
- python - 未找到带有关键字参数“{'pk': 1}”的“project_detail”的反向操作。尝试了 1 种模式:['projects//int:pk/$']
- ethereum - ERC20 合约无法转移大额代币
- spring - 如何将自定义 SSL 证书注入 springbok bootBuildImage
- reactjs - events.js:288 错误:使用 Jest 执行测试时写入 EPIPE
- php - 为 wordpress 主题导入示例数据会出现错误:无法使用 WP_Error 类型的对象作为 import.php 中的数组
- reactjs - 在 React Native 上将缓冲区图像解析为 base64
- xamarin.forms - Xamarin.Forms:即使条目有焦点,也需要在后退按钮按下时返回上一页
- javascript - 如何使用 discord.js 使用 discord 机器人发送 DM