Javascript 浏览器直接调用后端URL而不是UI应用程序URL
我已经3周大了,所以对它的工作原理有点困惑。 设置:我们有1个容器运行2个应用程序(UI和后端),UI在8080上运行,后端在8181上运行 问题:当我们在登录页面上提交凭据时,浏览器会直接呼叫后端以检查用户是否存在。通过查看浏览器开发工具中的网络调用,我找到了这一点。不确定框架如何工作,但浏览器如何直接调用后端而不是UI应用程序。随着应用程序的成熟,后端端口甚至不会对外部通信开放 详细信息-我正在实现一个登录页面-它基本上调用UI应用程序来呈现login.html,一旦用户提交了带有用户ID和密码的页面;它转到控制器,该控制器发出API调用,以检查用户是否存在于数据库中 浏览器(ClientUIIP:8080)-->UI-->后端(检查用户是否存在) 我有一个controller.js,代码如下Javascript 浏览器直接调用后端URL而不是UI应用程序URL,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我已经3周大了,所以对它的工作原理有点困惑。 设置:我们有1个容器运行2个应用程序(UI和后端),UI在8080上运行,后端在8181上运行 问题:当我们在登录页面上提交凭据时,浏览器会直接呼叫后端以检查用户是否存在。通过查看浏览器开发工具中的网络调用,我找到了这一点。不确定框架如何工作,但浏览器如何直接调用后端而不是UI应用程序。随着应用程序的成熟,后端端口甚至不会对外部通信开放 详细信息-我正在实现一个登录页面-它基本上调用UI应用程序来呈现login.html,一旦用户提交了带有用户ID和
var serverPath = 'http://localhost:8181/backend'
//Backend API URL's
var users = '/users';
<code>
function LoginCtrl($scope, $state, $http, $rootScope){
this.cancel = $scope.$dismiss;
$scope.showLogin = true;
$scope.message = "";
this.submit = function(username, email){
$http.get(serverPath + users + "/" + username)
.success(function(response){
if(response.name === username){
$scope.currentUser = username;
window.localStorage.setItem('CurrentUser', JSON.stringify(username));
$scope.showLogin = false;
return $state.go('index.main')
}else{
$scope.message = "Login not valid, please try again";
}
});
};
this.logout = function () {
window.localStorage.setItem('CurrentUser', null);
$scope.currentUser = null;
return $state.go('index.login')
};
if(getCurrentUser() != null){
$scope.showLogin = false;
}
};
请告诉我是否有人知道需要更改什么,以便浏览器调用UI,然后UI可以调用后端(如果用户存在或不存在)
谢谢你Hmm。你的应用程序正在调用后端服务器,因为当你提供带有后端URL(
localhost:8181/backend
)@Pop-A-Stash的$http.get
方法时,你明确告诉它要调用后端服务器。很抱歉,该后端URL用于UI应用程序与后端应用程序通信。出于某种原因,它直接从浏览器中获取并调用它,而不是通过UI应用程序。你所说的毫无意义。如果在浏览器中加载上述代码,它将直接调用localhost:8181
。唯一的改变方法就是改变URL。如果您想通过$http
调用调用“UI-App”,则必须创建URLlocalhost:8080
,如果您向我们展示浏览器开发人员工具中显示的请求/响应的详细信息,可能会有所帮助。另外,请告诉我们请求/响应与您的期望有何不同