角: 我的路线中的网址是'/ auth / login',后端的路由是'/ login' - 这一切都有效,但我只是想知道为什么两个网址都不同 - 前端如何与后端对话? 或者它是否有效,因为两个url都有/ login(所以之前的任何内容 - 在这种情况下:/ auth无关紧要)? 谢谢。
....
auth.login = function(email, password) {
return $http.post('/auth/login', user)
.then(function(response){
$rootScope.currentUser = response.data;
})
}
....
后端:
app.post('/auth/login', function (req, res, next) {
User.findOne({
where: req.body
})
.then(function (user) {
if (!user) {
res.sendStatus(401);
} else {
req.session.userId = user.id;
res.sendStatus(204);
}
})
.catch(console.error)
});
答案 0 :(得分:0)
它的工作原理是因为一旦加载了角度,对客户端URL的任何更改都不会导致浏览器发出服务器请求。浏览器对服务器的唯一请求是index.html +它使用的任何资源(js,css,images)。
有关其工作原理的更多信息,请参阅 Hashbang& $location guide。
的HTML5模式部分客户端+服务器API之间的链接仅在您从角度发出$http
个请求时发生。对$http
次请求,您要指定要请求的API端点的确切网址。
前端和后端/ API URL不需要有任何共同点。唯一需要注意的是,您用于$http
请求的网址指向后端API的有效网址。
所有这一切的唯一例外是,如果您已经将应用编码为某种魔术,您可以使用当前的浏览器URL来决定要触及哪个API端点。这是一个非常罕见的情况,如果您的应用程序正在执行此类操作,您肯定会知道它(因为您必须自定义构建该功能!)
希望能为你清除它。