通过jQuery AJAX POST发送JavaScript数组

我想要做的是将JavaScript数组发送到PHP文件。
这就是我得到的:

var mydata = []; console.log(document.getElementsByTagName("input")[0].name); for (var i = 0; i < document.getElementsByTagName('input').length; i++) { mydata[document.getElementsByTagName("input")[i].name] = document.getElementsByTagName("input")[i].value; }; for (var i = 0; i < document.getElementsByTagName('select').length; i++) { mydata[document.getElementsByTagName("select")[i].name] = document.getElementsByTagName("select")[i].value; }; console.log(mydata); $.ajax({ method: "POST", url: "q.php", data: {'lol': JSON.stringify(mydata)}, contentType: 'application/json', dataType: 'json' }) .done(function( msg ) { alert( "Data Saved: " + msg ); $('#debug').html(msg); }); 

所以你可以看到,我创建了一个带循环的数组,那时候一切都很好。 问题是当我尝试通过POST与JSON发送它。 我不知道这是不是最好的方法……

我试过没有JSON.stringify(); 但是$_POST仍然是空的

好像post没有发送,但我可以在控制台中看到已发送XHRpost请求。

尝试使用此代码并查看更改。

删除contentType: 'application/json', dataType: 'json'

并将var mydata = []更改为var mydata = {}

你的ajax应该是这样的

         $就({
            方法:“POST”,
             url:“q.php”,
            数据:{'lol':mydata}
         })
         .done(function(msg){
             alert(“Data Saved:”+ msg);
             $( '#调试')HTML(MSG);
         });

你不必将你的mydata字符串化,因为你已经将它作为对象删除了。

希望能帮助到你