elp*_*sto 8 javascript angularjs
我有用于REST的API的Java应用程序.我为它做了前端.现在我正在使用授权.
当我发出POST请求应用程序返回我这样的JSON消息:如果登录和传递是正确的
{
"result": {
"token": "shgvojhhsifav37o5a3sebc3if"
}
}
Run Code Online (Sandbox Code Playgroud)
如果他们不对:
{
"error": {
"code": 10,
"message": "Incorrect login or password"
}
}
Run Code Online (Sandbox Code Playgroud)
我可以在浏览器中看到响应,但不能在JavaScript代码中使用它.
我怎样才能得到它并检查下一步行动.
我的JavaScript:
controllers.controller('userAuthCtrl', ['$scope','$http',
function($scope, $http){
$http({
method: 'POST',
url: '/rest/api/auth/login',
data: '?login=test&password=passwo3rd',
headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
}).
success(function(data, status, header, config) {
console.log(header());
console.log(config);
$scope.dataU = data;
$scope.statusU = status;
}).error(function(data, status, header, config){
console.log(header());
console.log(config);
})
}
]);
Run Code Online (Sandbox Code Playgroud)
我的测试HTML现在很简单.
<div class="testCont" ng-controller="userAuthCtrl">
</div>
Run Code Online (Sandbox Code Playgroud)
$ http(文档)也返回一个带有两个附加方法的promise.success你正确处理的error,你没有定义但你可以很容易地链接你的success功能.
$http({[options]})
.success(function(data, status, headers, config){})
.error(function(data, status, headers, config){});
Run Code Online (Sandbox Code Playgroud)
如果您的Web响应仍然返回成功或失败状态200,那么您可以在成功处理程序中处理它:
$http({})
.success(function(data, status, headers, config){
/*called for result & error because 200 status*/
if (data.result){
//handle success here
} else if (data.error {
//handle error here
})
.error(function(data, status, headers, config){
/*handle non 200 statuses*/
});
Run Code Online (Sandbox Code Playgroud)
根据评论,您还需要更改此内容:
data: '?login=test&password=passwo3rd
Run Code Online (Sandbox Code Playgroud)
至:
data: {login: 'test', password: 'passwo3rd'}
Run Code Online (Sandbox Code Playgroud)
这是因为它不是查询字符串,而是JSON格式的请求体的一部分.
| 归档时间: |
|
| 查看次数: |
37347 次 |
| 最近记录: |