/ 和 /#/ 有什么区别?
What is the difference between / and /#/?
为了学习 AngularJS,我正在做一个小项目。这个项目有两个页面“/”和“/login”。因此,当未通过身份验证时,它重定向到“/login”,如果通过身份验证则重定向到“/”。身份验证过程由 NodeJS 服务器处理并且有效。我在控制器中实现了一个简单的身份验证。
if ((typeof $scope.token === "undefined") || ($scope.token == null))
$location.path("/login");
else
$location.path("/");
这段代码,当我未通过身份验证并访问“/”时将我重定向到“/login”,但是当我访问“/#/”时它显示“/”的内容,即使我'我未通过身份验证。
所以我想知道“/”和“/#/”之间是否有区别,为什么会这样?
URLs 和 #<anything>
是浏览器本地的,哈希和它后面的任何内容都不会根据请求发送到服务器,也不会在附加哈希时重新加载页面或变了。它对于可以直接在 URL.
中共享的客户端触发器很有用
在本地,您可以使用 location.hash
访问它的值(但在您的情况下,它只是 "/"
)
所以区别在于,一个是没有散列的 /
URL,而 /#/
是带有 "/"
散列的 URL因为它的价值。
为了学习 AngularJS,我正在做一个小项目。这个项目有两个页面“/”和“/login”。因此,当未通过身份验证时,它重定向到“/login”,如果通过身份验证则重定向到“/”。身份验证过程由 NodeJS 服务器处理并且有效。我在控制器中实现了一个简单的身份验证。
if ((typeof $scope.token === "undefined") || ($scope.token == null))
$location.path("/login");
else
$location.path("/");
这段代码,当我未通过身份验证并访问“/”时将我重定向到“/login”,但是当我访问“/#/”时它显示“/”的内容,即使我'我未通过身份验证。
所以我想知道“/”和“/#/”之间是否有区别,为什么会这样?
URLs 和 #<anything>
是浏览器本地的,哈希和它后面的任何内容都不会根据请求发送到服务器,也不会在附加哈希时重新加载页面或变了。它对于可以直接在 URL.
在本地,您可以使用 location.hash
访问它的值(但在您的情况下,它只是 "/"
)
所以区别在于,一个是没有散列的 /
URL,而 /#/
是带有 "/"
散列的 URL因为它的价值。