我是 Angular 的新手,如果我的问题有点低级,请不要生我的气。
如果用户将通过身份验证,我有返回 sessionId 和登录成功消息的网络服务。例如 url 是:
http://localhost:8181/login?username=USERNAME&password=12345
这是我的回应:
{"sessionId":"0997cec2a8b34c84ba8419ab1204e6aa","loginSucceeded":true}
这是我的登录 Controller :
app.controller('loginCtrl', function($scope, loginService){
$scope.login=function(user){
loginService.login(user);
}
});
这是我的服务:
app.factory('loginService', function($http){
return{
login: function(user){
var $promise=$http.post('http://localhost:8181/login?', user);
$promise.then(function(msg){
if(msg.loginSucceeded=="true")
console.log("opa")
else
console.log("den");
});
}
}
});
我的范围内有 user.username 和 user.password(使用文本框)。
如何在 url 中传递这些参数以及如何解析该响应?
最佳答案
在您的代码中,您在 POST 请求的 URL 中传递用户名和密码。如果那是您真正想要的(将它们作为 POST 数据传递更常见),那么您可以使用它:
login: function(user){
var url = 'http://localhost:8181/login?username=' + user.name + '&password=' + user.password;
$http.post(url).then(function(msg){
if(msg.loginSucceeded==="true"){
console.log("opa")
}else{
console.log("den");
}
});
}
如果您想将数据作为 POST 数据传递,您可以将其作为 $http.post()
调用中的第二个参数传递:
login: function(user){
var url = 'http://localhost:8181/login';
var data = {username: user.name, password: user.password};
$http.post(url, data).then(function(msg){
if(msg.loginSucceeded==="true"){
console.log("opa")
}else{
console.log("den");
}
});
};
关于javascript - 带参数的angularjs $http.post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33355497/