如何限制ajax POST请求的数量?

时间:2015-08-07 16:52:50

标签: javascript ajax angularjs

我正在使用angular(如果它很重要)并且我试图限制我的浏览器使用javascript创建的ajax POST请求的数量 - 理想情况下xmlHttpRequest对象上的vanilla javascript。任何想法都将不胜感激。

修改1:

更确切地说,假设我单击一个按钮,该按钮通常会触发15个并发POST请求 - 每个请求一个,“记录”。我想将这些并发请求限制为最多5个。是否有一个低级别(即javascript xmlHttpRequest)来限制这些请求的数量?也可以安全地假设使用总是使用chrome或safari,因为这是一个内部工具。

1 个答案:

答案 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');