我做了一个管理数据发送到服务器端的功能。我想返回 $http
的回复当它成功时。
我的 Controller :(当我调用该函数时)
var myResponse = sendData(inputValueArray, url, onSuc, onErr, $http);
// Nothing happen here:
alert(myResponse);
我的发送数据函数:
function sendData(inputArray, url, onSuccess, onErr, $http) {
var serverResponse = "";
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
$http({
method: 'POST',
url: url,
data: {
myData: inputArray
},
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
.success(function(response) {
if (response.res == true) {
onSuccess();
serverResponse = response;
}
else {
onErr();
}
})
.error(function(data, status, headers, config) {
onErr();
});
return serverResponse;
}
最佳答案
您正在返回 serverResponse
,然后它才从回调中获取任何数据。相反,尝试这样的事情:
function sendData(inputArray, url, onSuccess, onErr, $http) {
var serverResponse = "";
$http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
return $http({
method: 'POST',
url: url,
data: {
myData: inputArray
},
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
});
}
然后你像这样使用它
sendData
.success(function(response) {
if (response.res == true) {
onSuccess();
serverResponse = response;
alert(serverResponse); // ************
}
else {
onErr();
}
})
.error(function(data, status, headers, config) {
onErr();
});
关于javascript - Angularjs响应$http返回问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33941322/