我创建了一个 AngularJs Post 请求。请求包含一个很长的过程,执行该过程需要超过 2 分钟。但是我的角度请求在 15 秒后返回空错误。请求完美工作并且没有错误。但是角度请求在 15 秒内超时
$http.post('/api/evaluateOmrExamination',{exam_id:$scope.curExam.id})
.success(function(data,status,headers,config){
$scope.showProgress=false;
ngNotify.config({
theme: 'pure',
position: 'top',
duration: 3000,
type: 'info',
sticky: false,
button: true,
html: false
});
ngNotify.set('Evaluate Examination Completed Successfully');
$scope.errorLists=data;
}).error(function(data,status,headers,config){
console.log(data);
//$scope.showProgress=false;
});
我也设置了角度超时但没有用。
app.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.timeout = 10000000;
}]);
我需要你的建议
短期修复是增加服务器的超时(这不是客户端 / Angular 问题)。您说您使用的是 LAMP,因此您必须将max_execution_time
php.ini 中的PHP属性配置为更大的值。您可能还需要在 httpd.conf 中配置 Apache 的超时。
长期修复,请求可以立即返回(即不是 2 分钟甚至 15 秒后)。这并不意味着工作已经完成,只是执行工作的请求已经完成。然后你可以每隔 X 秒 ping 你的服务器,看看作业是否完成,然后将数据显示给用户。这似乎需要更多的工作,而且可能需要更多的时间,但我发现以这种方式进行开发和调试会更容易,而不是让单个单一请求完成大量工作。除了提供更好的用户体验之外:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句