使用 React Router 刷新浏览器历史记录会返回来自我的 API 的调用



据我了解,要正确使用 React Router 中的 browserHistory 对象,我们需要使用通配符*路由,以便在每次刷新时向用户返回单页应用程序。当我的客户端 URL 与我的一个 api URL 相同时,这成为一个问题。

例如,假设我有一个名为example.com的网站,并且该网站上的一个页面是 example.com/profile 。如果我刷新,预期的行为是它只会重新加载网站example.com并正确路由到/profile,因为通配符路由应该向客户端返回单页应用程序。这不起作用的地方是如果我有一个 API 路由/profile,即 example.com/profile . 现在,当用户刷新页面时,他们不会返回配置文件页面,而是从我的 API 返回 JSON 响应。

根据声明通配符路由的顺序,我可以在刷新时返回 API 响应,也可以在刷新时返回单页应用,但当 API URL 与客户端浏览器 URL 相同时,不能同时返回两者。

对这个问题有什么建议吗?我当前的解决方案是迁移我的所有 API 路由,以在它们前面附加/api/

您需要

确保您的客户端路由不会与您的 API 路由发生冲突,并且以 /api 前缀 API 路由是处理此问题的一种非常标准的方法。

除了

确保它们不会发生冲突之外,没有真正的方法可以"解决"这个问题——各种解决方法可能是可能的,但如果路线明确,那么所有相关人员都会更加清楚。

最新更新