Javascript 如何避免在使用Angularjs执行$http GET时在URL中显示参数
我有一个非常简单的登录,但是由于我们的后端结构,我必须使用$HTTPGET请求和angularjs进行登录 但是,我不希望在URL中看到用户名和密码 所以我很好奇我能做些什么来解决这个问题?任何帮助都将不胜感激 这是我的LoginController.jsJavascript 如何避免在使用Angularjs执行$http GET时在URL中显示参数,javascript,angularjs,url,parameters,Javascript,Angularjs,Url,Parameters,我有一个非常简单的登录,但是由于我们的后端结构,我必须使用$HTTPGET请求和angularjs进行登录 但是,我不希望在URL中看到用户名和密码 所以我很好奇我能做些什么来解决这个问题?任何帮助都将不胜感激 这是我的LoginController.js self.login = function() { if (self.username == '' || self.password == '') { alert("Please Check your creden
self.login = function() {
if (self.username == '' || self.password == '') {
alert("Please Check your credentials");
} else {
LoginService.login(self.username, self.password).then(function (resp) {
//console.log(resp);
LoginService.setCredentials(self.username,self.password);
$state.go('dashboard');
})
}
}
这里是LoginService.js
var loginSuccess = function (response) {
//console.log(response.data);
//console.log(response.data.keyId);
$rootScope.keyId = response.data.keyId;
$cookies.put('keyId',$rootScope.keyId);
self.isLoggedIn = true;
//$state.go('dashboard');
return response.data;
};
return {
login: function (username, password) {
return $http({
method: 'GET',
url: 'https://URLHERE/ApplicationKeys/'+username+'Key/?userid='+username+'&password='+password,
headers: {'ACCEPT':'application/json'}
}).then(loginSuccess,loginFailure);
},
isLoggedIn: function () {
return self.isLoggedIn;
},
如果您控制与之对话的服务器,则应将其修改为POST。获取用于获取信息,而不是更新信息 您还可以传递数据对象,而不是将其作为url的一部分
return $http({
method: 'GET',
url: 'https://URLHERE/ApplicationKeys/'+username+'Key/',
headers: {'ACCEPT':'application/json'},
data: {userid: username, password: password}
}).then(loginSuccess,loginFailure);
我自己找到了答案。显然,当您在html中使用
标记时,会将所有信息粘贴到浏览器中的URL。当我删除html页面中的
标记时,一切都消失了。为什么要获取包含用户名和密码的内容。POST是正确的方法。你不希望有人能够仅仅通过一个链接来实现这一点。我知道这一点,但这不是我可以更改的,我需要获取应用程序密钥,并且没有后期服务,所以他们告诉我使用GET,他们现在无法更改。你的意思是将数据对象传递给“login:function”吗(username,password)“here”?在您的代码示例中使用上面的$http方法调用。