jQuery,如何只用 ajax 遍历一个数组一次

jQuery, how to loop through an array with ajax only once

我有这个 jQuery 函数,它从 wp_localize_script 声明中读取值。

<script type='text/javascript'>
/* <![CDATA[ */
var assjs = {"action":"get_ass_counts","path":"http:\/\/localhost\/wordpress-dev\/wp-content\/plugins\/advanced-social-status","_wpnonce":"2f3686b7ca","networks":"fblike,fbshare","ajax_url":"http:\/\/localhost\/wordpress-dev\/wp-admin\/admin-ajax.php"};
/* ]]> */
</script>

我最感兴趣的查询部分是 "networks":"fblike,fbshare"

在单独的 JavaScript 文件中我有这个函数:

AJAX 脚本

$('.advanced-social-status form').on('submit', function(e) {

    e.preventDefault();

    // Array of social networks
    var social_networks = [assjs.networks];

    // cancel previous requests
    if (asswxhr) asswxhr.abort();

    $.each(social_networks, function(key){
        asswxhr = $.ajax({
            type: "POST",
            url: assjs.ajax_url,
            data:{
                action: assjs.action,
                _wpnonce: assjs._wpnonce,
                network: social_networks,
            },
            success: function(data) {
                console.log(data);
                $results.html(data);
            },
            beforeSend: function() {

                $(".ass-fbshare").html('<img style="margin-left:50px;" src="'+assjs.path+'/images/ajax-loader.gif" />');
            }
        });

    });

    return false;
});

我想要实现的是为 "networks":"fblike,fbshare" 获取每个单独的社交网络功能,我在 jQuery 中将其引用为 assjs.networks 并循环处理它一次。

目前,它将两个社交网络对象发布到我的 PHP 脚本,该脚本处理 ajax 请求。

PHP 脚本

$socialnetwork = trim(stripslashes($_POST['network']));

如果我 var_dump($_POST); 在我的 PHP 处理脚本中,我会得到这些结果:

array(4) {
  ["action"]=>;
  string(14) "get_ass_counts"
  ["_wpnonce"]=>;
  string(10) "2f3686b7ca"
  ["network"]=>;
  array(1) {
    [0]=>;
    string(14) "fblike,fbshare"
  }
  ["s"]=>;
  string(0) ""
}

有没有一种方法可以分离或分解 jQuery 文件中的社交网络名称,以便它只传递每个社交网络名称一次?

谢谢

你可以用split来代替

   var social_networks = [assjs.networks];
   social_networks = social_networks.split(',');

MDN ref

这不是进行多次 ajax 调用的最佳方法,请考虑 Geohut 的建议。