【问题标题】:Cannot request Iron Router server route twice without refreshing the client无法在不刷新客户端的情况下请求 Iron Router 服务器路由两次
【发布时间】:2016-02-14 03:10:28
【问题描述】:

我正在调用一个流星方法,它使用fs 生成一个文件。我等待回调给我文件所在的路径,然后我用服务器路由请求文件。该代码与this SO answer 非常相似。我也尝试过使用createReadStream(如here所示)而不是将文件直接传递给response.write

这一切都适用于客户第一次点击我的导出/下载按钮。但是,如果出于某种原因他们想要多次单击该按钮,则会生成文件,但 Iron Router 不会提供该文件。客户端或服务器上没有错误。如果用户刷新客户端,则该功能将再次工作(一次)。

为什么我需要刷新浏览器才能再次请求相同的服务器路由?我做错了什么吗?


Example Application

【问题讨论】:

  • 不看代码很难说。
  • @ChristianFritz 请查看带有示例应用链接的编辑,谢谢。
  • 第一次下载时,URL 会改变吗?如果是这样,并且第二条路线相同,您将不会被重定向,因为您已经在那里。如果是这种情况,您可以使用路由器挂钩将用户返回到他们来自的路由?

标签: node.js meteor iron-router


【解决方案1】:

当他们点击第一次下载时,URL 会改变吗?如果是这样,并且第二条路线相同,您将不会被重定向,因为您已经在那里。如果是这种情况,您可以使用路由器挂钩将用户返回到他们来自的路由吗?

【讨论】:

  • 谢谢@FloatingCoder,看来是这样。如果我使文件名(和路由参数)动态化,我可以重复下载文件。不过,我似乎无法从服务器路由的 onAfterAction 挂钩 Router.go 到客户端路由。我不确定我是否需要重定向,但很高兴知道这是否可能。
猜你喜欢
  • 1970-01-01
  • 2015-02-27
  • 1970-01-01
  • 2013-12-09
  • 2015-04-17
  • 2019-01-06
  • 2015-06-15
  • 2021-06-15
  • 2014-05-11
相关资源
最近更新 更多