如何使用jQuery的ajax方法将json数组发布到PHP?

我有一个由javascript创建的json数组,需要将其发布到php文件,以便将数据保存到数据库中。

var myArray = [{ "picture":"picture1.jpg", "picture_comment":"some comment about picture1", "pictureid":16, "u0id":80, "u1id":82, "u2id":78, "u3id":79, "u4id":81, "param0": "60f3f", "param1":"48dd2", "param2":"4f2f7", "param3":"8d101", "param4":"5efcc", "active":false, "dutyid":1256, "t":0 }, { "picture":"picture2.jpg", "picture_comment":"some comment about picture2", "pictureid":160, "u0id":18, "u1id":48, "u2id":70, "u3id":95, "u4id":74, "param0": "1123f", "param1":"48d13", "param2":"595f7", "param3":"78ad8", "param4":"4efdc", "active":false, "dutyid":125, "t":4 } //goes like this about more than 20 times. ; 

我试图使用jQuery.ajax发布它,但我没有成功。

  $.ajax({ type: "POST", url: "goDoMyWork.php", data: myArray, dataType: "json", success: function(){ alert("Done! You'll be redirecting now."); window.location.href = "/index.php"; } , error: function(jqXHR, textStatus, errorThrown) { alert("Fail!"); } }); 

我必须将一些数据插入一个表中,并将其中一些数据插入另一个表中。

我使用以下错误:

 alert(jqXHR + '-' + textStatus + '-' + errorThrown); 

[object Object] -parsererror-SyntaxError:JSON.parse:意外字符

尝试更改data: myArray to data: {mydata : myArray} 。 直接传递数组会导致jQuery以奇数格式传递它。 http://api.jquery.com/jQuery.param/

JSON.parse是将json格式的文本转换为JavaScript对象的函数。 你似乎想要做的是在服务器上抛出一些数据,服务器将在那里进一步处理它。

你实际做的是将dataType设置为json 。 在文档中,您可以读到这是您希望从服务器返回的数据类型。 jQuery将因此通过JSON.parse抛出从服务器返回的数据,但显然数据不是格式良好的json-string。 从请求中删除dataType将解决此问题,因为很可能无法解析数据。 因此,返回的任何内容都将以字符串的forms出现。