我有一个由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:意外字符
答案 0 :(得分:2)
尝试将data: myArray
更改为data: {mydata : myArray}
。直接传递数组会导致jQuery以奇数格式传递它。 http://api.jquery.com/jQuery.param/
答案 1 :(得分:1)
JSON.parse
是将json格式的文本转换为JavaScript对象的函数。你似乎想要做的是在服务器上抛出一些数据,服务器将在那里进一步处理它。
您实际执行的操作是将dataType
设置为json
。在documentation中,您可以读到这是您希望从服务器返回的数据类型。因此,jQuery会通过JSON.parse
抛出从服务器返回的数据,但显然数据不是格式良好的json-string。从您的请求中删除dataType
将解决此问题,因为很可能无法解析数据。因此,返回的任何内容都将以字符串的形式出现。