我正在使用angular(如果它很重要)并且我试图限制我的浏览器使用javascript创建的ajax POST请求的数量 - 理想情况下xmlHttpRequest
对象上的vanilla javascript。任何想法都将不胜感激。
修改1:
更确切地说,假设我单击一个按钮,该按钮通常会触发15个并发POST请求 - 每个请求一个,“记录”。我想将这些并发请求限制为最多5个。是否有一个低级别(即javascript xmlHttpRequest
)来限制这些请求的数量?也可以安全地假设使用总是使用chrome或safari,因为这是一个内部工具。
答案 0 :(得分:0)
您可以使用拦截器来完成此操作,捕获所有请求,检查它们是否是发布方法,并在使用configs timeout属性超过某些计数时停止请求。
$provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) {
var countTimes = 0;
var stopRequest = $q.defer();
stopRequest.resolve();
return {
'request': function(config) {
if(config.method == 'POST' && countTimes < someMaxNumber) {
countTimes += 1;
return config;
} else {
config.timeout = stopRequest.promise;
return config;
}
}
});
$httpProvider.interceptors.push('myHttpInterceptor');