我正在使用AngularJS将表单数据发送到服务器。
app.controller("OrganizerReg", ["$scope","$http", function($scope,$http) {
$scope.userOrganizer = {};
$scope.processform = function() {
$http ({
method: 'POST',
url: 'http://52.11.67.77:3000/api/users',
headers: {'Content-Type': 'application/json'},
data: JSON.stringify($scope.userOrganizer)
})
.success(function(response) {
console.log(response.user_id);
$scope.user_id = response.user_id;
})
$http ({
method: 'POST',
url : 'http://52.11.67.77:3000/api/users/'+$scope.user_id+'/accessTokens',
})
.success(function(response) {
console.log(response);
})
}
为了获取访问令牌,我需要发送一个POST请求。来自第一个HTTP请求的响应给出了生成访问令牌所需的user_id
。问题是每当我发送请求时,$scope.user_id
都会在标头中返回undefined。如何设置我的$scope.user_id
全局,以便它可以被另一个HTTP请求使用。
修改 我读了duplicate question,但它仍然没有帮助我。
答案 0 :(得分:5)
使用promise chain在另一个之后调用请求
function firstReq(){
return $http({
method: 'POST',
url: 'http://52.11.67.77:3000/api/users',
headers: {'Content-Type': 'application/json'},
data: JSON.stringify($scope.userOrganizer)
})
}
function secondReq(){
return $http({
method: 'POST',
url : 'http://52.11.67.77:3000/api/users/' +$scope.user_id + '/accessTokens',
})
}
$scope.processform = function() {
firstReq()
.then( function( response )
{
console.log(response.data.user_id);
$scope.user_id = response.data.user_id;
return secondReq();
})
.then(function(response){
console.log(response.data);
})
}