javascript post项数组变量

javascript post项数组变量,javascript,ajax,Javascript,Ajax,我要做的是让这个javascript为'var msg'数组制作四篇文章 但它却发布了四次“encodeURIComponent(msg[i])”。我该如何解决这个问题 var msg = ['one', 'two', 'three', 'four' ]; for (var i in msg) { var post_form_id = document['getElementsByName']('

我要做的是让这个javascript为'var msg'数组制作四篇文章
但它却发布了四次“encodeURIComponent(msg[i])”。我该如何解决这个问题

   var msg = ['one', 
        'two', 
        'three', 
        'four' ];
        for (var i in msg) {   

        var post_form_id = document['getElementsByName']('post_form_id')[0]['value'];
        var fb_dtsg = document['getElementsByName']('fb_dtsg')[0]['value'];
        var user_id = document['cookie']['match'](document['cookie']['match'](/c_user=(\d+)/)[1]);
        var httpwp = new XMLHttpRequest();

        var urlwp = '/ajax/profile/composer.php?__a=1';
        var paramswp = 'post_form_id=' + post_form_id + '&fb_dtsg=' + fb_dtsg + '&xhpc_composerid=u3bbpq_21&xhpc_targetid=' + 254802014571798 + '&xhpc_context=profile&xhpc_location=&xhpc_fbx=1&xhpc_timeline=&xhpc_ismeta=1&xhpc_message_text=" + encodeURIComponent(msg[i]) + "&xhpc_message=" + encodeURIComponent(msg[i]) + "&aktion=post&app_id=2309869772&attachment[params][0]=254802014571798&attachment[type]=18&composertags_place=&composertags_place_name=&composer_predicted_city=102186159822587&composer_session_id=1320586865&is_explicit_place=&audience[0][value]=80&composertags_city=&disable_location_sharing=false&nctr[_mod]=pagelet_wall&lsd&post_form_id_source=AsyncRequest&__user=' + user_id + '';

               {
        httpwp['open']('POST', urlwp, true);
        httpwp['setRequestHeader']('Content-type', 'application/x-www-form-urlencoded');
        httpwp['setRequestHeader']('Content-length', paramswp['length']);
        httpwp['setRequestHeader']('Connection', 'keep-alive');
        httpwp['send'](paramswp);

        i += 1;
                        }
         }   

此时,您将从单引号切换到双引号:

&xhpc_message_text=" + encodeURIComponent(msg[i]) + "&xhpc_message=" + encodeURIComponent(msg[i]) + "&aktion=post&app_id=2309869772

试着改用单引号,它应该被正确地解析。

除此之外,卡西米尔指出,你还可以。将代码更改为(var i=0,nMsg=msg.length;i,并删除行
i=i+1

为什么要执行
文档['getElementsByName']
?那是糟糕的编码风格。您应该使用
document.getElementsByName
。在
var paramswp=…
行中有大量的单引号和双引号,因此方法调用被视为文本字符串。你可以很容易地在你的问题中看到这一点,因为语法着色。我被击败的答案,这两个都是正确的,但我可能建议避免这样长的一行在未来。即使是为了可读性,也可以将其分解成更多的变量。