【发布时间】:2020-01-16 03:30:23
【问题描述】:
我遇到了一些问题,我似乎在回调中获取数据,但在 Get XMLHttpRequest 方法中遇到错误“未定义响应”。
ReferenceError: 响应未定义
at eval (eval at getApproval (https://localhost:44301/TC_HRApp/views/travel/travelclaim/js/service.js:555:20), <anonymous>:1:1) at Object.getApproval (https://localhost:44301/TC_HRApp/views/travel/travelclaim/js/service.js:555:20) at Scope.$scope.fnMatrixApproval (https://localhost:44301/TC_HRApp/views/travel/travelclaim/js/controllers.js:850:40) at Object.fn (https://localhost:44301/TC_HRApp/views/travel/travelclaim/js/controllers.js:982:24) at Scope.$digest (https://localhost:44301/Scripts/angular/angular.js:14230:29) at Scope.$apply (https://localhost:44301/Scripts/angular/angular.js:14493:24) at done (https://localhost:44301/Scripts/angular/angular.js:9650:47) at completeRequest (https://localhost:44301/Scripts/angular/angular.js:9840:7) at XMLHttpRequest.requestLoaded (https://localhost:44301/Scripts/angular/angular.js:9781:9)"
当我查看调试器时,我必须等待几分钟才能得到一个如下所示的 .json 响应对象:
approvers: Array(1)
0: {code: "", name: ""}
length: 1
__proto__: Array(0)
checkers: Array(1)
0: {code: "", name: ""}
length: 1
__proto__: Array(0)
pics: Array(1)
0:
code: "MRT2eDJtg520181120161414"
name: "Sharon Lin"
所以数据似乎都在那里,我只是很难弄清楚如何获取它。
有人可以帮我指出正确获取数据的方向吗?
这是代码 service.js
var getApproval = function (employee) {
var deferred = $q.defer();
return $http({
method: 'GET',
url: ICLAIM_DOMAIN + '/api/approval-chain/get-matrix?username=' + USERNAME_TRAVEL_CLAIM + '&password=' + PASSWORD_TRAVEL_CLAIM
+ '&department=' + employee.departmentId + '&location=' + employee.locationId,
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).then(function (response) {
deferred.resolve(response.data);
}, function (response) {
deferred.reject('failed');
});
return deferred.promise;
}
这是代码 controller.js
$scope.fnMatrixApproval = function (total) {
debugger
if (parseInt(total, 10) < 100.00) {
travelclaimService.getApproval(travelClaimCreateInit.employee)
.then(function (promise) {
$scope.travelClaimCheckersApprovers = [];
angular.forEach(promise.results.approvers, function (value, key) {
var data = {
name:value.code,
email: "",
type: 'checker'
}
$scope.travelClaimCheckersApprovers.push(data);
});
angular.forEach(promise.results.checkers, function (value, key) {
var data = {
name: value.code,
email: "",
type: 'approver'
}
$scope.travelClaimCheckersApprovers.push(data);
});
$scope.travelClaimApiCheckersApprovers = promise.results;
});
} else {
$scope.travelClaimCheckersApprovers = travelClaimCreateInit.checkersApprovers;
$scope.travelClaimApiCheckersApprovers = travelClaimCreateInit.checkersApprovers;
}
}
开始方法“获取”错误“未定义响应”而 enter image description here
但几秒钟后它就返回了结果
【问题讨论】:
-
发布的代码看起来不错。是否有任何其他与此相关的代码,使用名为
response的东西。
标签: angularjs api xmlhttprequest