首页 文章

运行angular 2.0 app的浏览器如何知道在使用“HTML 5 URL”时是否对服务器进行调用

提问于
浏览
1

here的Angular 2.0文档提倡使用"HTML 5 URLs",它基本上废弃了在单页应用程序上使用"#" .

现在使用#的旧方法,如果#更改后有任何内容,浏览器将不会调用服务器 .

使用“HTML 5 URL”的新方法,浏览器如何判断是否要拨打服务器?

我的问题受到以下经验的启发 .

如果我直接在浏览器地址栏输入localhost:3000 / login并按回车键,浏览器将转到我的节点服务器

但是,如果我在我的角度2.0应用程序中有一个router.navigate ['/ login'],它不会转到节点服务器,它会显示位于客户端的视图 . 但它仍然显示localhost:3000 /登录浏览器地址栏

如果我之后立即点击刷新,它会再次尝试转到节点服务器 .

Update

以下内容摘自link上的Angular 2.0教程

如果我们告诉路由器导航到详细信息组件并显示“Magneta”,我们希望英雄ID(15)出现在浏览器URL中,如下所示:localhost:3000 / hero / 15如果用户将该URL输入浏览器地址栏,路由器应识别模式并转到相同的“Magneta”详细视图 .

我正在使用铬 .

1 回答

  • 1

    当您单击链接或通过在URL栏中输入URL或从JS创建XMLHttpRequest来加载页面时,浏览器仅调用服务器 .

    router.navigate['/login'] 由Angular2路由器处理,该路由器没有理由对服务器进行调用,因为这不是它的目的 .
    它只是使用不会导致页面重新加载的浏览器 pushState API更新URL栏中显示的URL .

相关问题