You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整AJAX请求?解决点击触发后请求重复发送的问题

修复AJAX请求重复发送的问题

看了你的代码,核心问题出在重复绑定点击事件上,再加上冗余的嵌套结构,导致每次点击按钮都会触发N次AJAX请求(N等于你的数组长度)。我来帮你拆解问题并给出修复方案:

问题根源

  • 你在$.each(array, function(i) { ... })循环内部,又嵌套了$(document).ready(),还重复绑定了$("#jsonp2").click()事件——这意味着数组有多少项,就会给按钮绑定多少个点击处理器,点击一次自然会发多次请求。
  • 外层已经有$(document).ready()了,完全不需要内层再嵌套。
  • $val = $('#d').html()是页面加载时就获取的,不是点击按钮时的实时值,这可能也不符合你的预期。

修复方案

方案1:批量处理数组项(点击一次遍历所有项发请求)

把点击事件绑定移到循环外面,只绑定一次,在点击事件内部再遍历数组执行AJAX:

$(document).ready(function () {
    // 只给按钮绑定一次点击事件
    $("#jsonp2").click(function () {
        // 点击时才获取最新的#d内容
        var val = $('#d').html();
        var number = val;
        var array = $('#test').val().split("\n");
        
        // 遍历数组执行AJAX请求
        $.each(array, function (i) {
            var ok = array[number];
            var arr = ok.split(":");
            var username = arr[0];
            var password = arr[1];
            
            $.ajax({
                url: "http://linux-app.tv:8080/player_api.php?username=" + username + "&password=" + password + "&type=m3u",
                success: function (response) {
                    var data = response.user_info;
                    if (data.status.match("Active")) {
                        $(".aprovadas").append("Username:" + data.username + "\npassword:" + data.password + "\nstatus:" + data.status + "\n");
                    }
                }
            });
        });
    });
});

方案2:单次处理指定项(点击一次只发一次请求)

如果你的需求是点击一次只处理数组中某个指定索引的项,那可以去掉循环,直接定位到目标项:

$(document).ready(function () {
    $("#jsonp2").click(function () {
        // 转为数字确保是有效索引
        var number = parseInt($('#d').html(), 10);
        var array = $('#test').val().split("\n");
        
        // 先检查索引是否有效,避免报错
        if (number >= 0 && number < array.length) {
            var ok = array[number];
            var arr = ok.split(":");
            var username = arr[0];
            var password = arr[1];
            
            $.ajax({
                url: "http://linux-app.tv:8080/player_api.php?username=" + username + "&password=" + password + "&type=m3u",
                success: function (response) {
                    var data = response.user_info;
                    if (data.status.match("Active")) {
                        $(".aprovadas").append("Username:" + data.username + "\npassword:" + data.password + "\nstatus:" + data.status + "\n");
                    }
                }
            });
        }
    });
});

内容的提问来源于stack exchange,提问作者cinassa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:40:56