Javascript 平均堆栈应用程序:页面在刷新时不会重新加载,但只返回JSON

Javascript 平均堆栈应用程序:页面在刷新时不会重新加载,但只返回JSON,javascript,mean-stack,meanjs,Javascript,Mean Stack,Meanjs,我目前正在设计一个MEAN.js web应用程序,出于某种原因,每当我在route或window.reload上刷新页面时,它不会重新提交页面,而是只返回在当前路由上找到的JSON文件 例如,当我在localhost:8080/人时: 如果我从主页点击这里,我会 但是如果我因为任何原因点击刷新或重新加载页面 有人知道为什么会发生这种情况,以及如何解决它吗?大概您正在使用Angular call的功能 这使用了。这些浏览器功能旨在让您构建一个web应用程序,该应用程序具有看似独立的页面和唯一的真实

我目前正在设计一个MEAN.js web应用程序,出于某种原因,每当我在route或window.reload上刷新页面时,它不会重新提交页面,而是只返回在当前路由上找到的JSON文件

例如,当我在localhost:8080/人时:

如果我从主页点击这里,我会

但是如果我因为任何原因点击刷新或重新加载页面


有人知道为什么会发生这种情况,以及如何解决它吗?

大概您正在使用Angular call的功能

这使用了。这些浏览器功能旨在让您构建一个web应用程序,该应用程序具有看似独立的页面和唯一的真实URL,但当您更改页面时,实际上会将当前页面的DOM修改为状态B,而不是从头开始加载新页面

pushState和friends的设计意图是,如果您请求映射到状态B的唯一、真实的URL,那么服务器将直接向浏览器提供状态B的HTML

这意味着:

如果你到达网站时没有首先进入主页,那么你 直接加载您试图加载的内容,这比加载主页然后用JavaScript修改要快。 如果您到达该站点时JavaScript不起作用,那么一切仍然正常。另见和。 错误之处在于URL映射到基于JSON的API,而不是生成页面的服务器端进程


您需要编写服务器端进程。您可以考虑使用它来允许它们与API共享URL,这样服务器就可以根据客户所接受的内容返回JSON或HTML。所以我认为这可以解决这个问题?@RonaldDuquette-因为您加载的URL不提供包含角度代码的HTML文档:否。并且依赖客户端路由代码生成带有JS的文档没有使用pushState,正如我在这个回答中所描述的,我在http请求中添加了accept头,现在它可以正常工作了!非常感谢。