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


How to post json array to PHP using jQuery's ajax method?

我有一个由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更改为data: {mydata : myArray}。直接传递数组会导致jQuery以一种奇怪的格式传递它。http://api.jquery.com/jQuery.param/

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

实际操作是将dataType设置为json。在文档中,您可以看到,这是您希望从服务器返回的数据类型。因此,jQuery会抛出它通过JSON.parse从服务器返回的数据,但显然数据不是一个格式良好的json字符串。从您的请求中删除dataType将解决此问题,因为数据很可能不会被解析。因此,无论返回什么,都将以字符串的形式出现。