ajax post array get type error

时间:2013-07-26 04:01:51

标签: php jquery

我通过ajax发布数组,如:

console.log(srcarray); //["16.png", "17.png", "19.png", "18.png"]

$.ajax({
    type: "POST", url: "update.php",
    data: {srcarray: srcarray}
})

得到错误:

TypeError: Type error       jquery-1.10.1.min.js:6

我试过添加processData: false, contentType: false,似乎不行,不会显示错误但无法将数据发布到php ....

我该如何解决这个问题? 感谢您的帮助。感谢

更新更新
发现错误行:
t = x.isFunction(t) ? t() : null == t ? "" : t, i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t)

更新

数组来了

下面的容器中的代码每个函数都是如此console.log(content_img_arr_merge) 会得到结果:

[“16.png”,“17. png”,“19. png”,“18. png”] [ “0.png”]
[ “0.png”]
[]
[]

$.each(content_img_arr_merge, function (index, value) {
    content_img_arr_merge[index] = value.replace("u_img/"+id+"/", "");
});
console.log(content_img_arr_merge);   

如果我更改了代码测试:

$.each(content_img_arr_merge, function (index, value) {
    content_img_arr_merge[index] = value.replace("u_img/"+id+"/", "");
});
console.log(content_img_arr_merge); 
content_img_arr_merge = ["16.png", "17.png", "19.png", "18.png"];

然后它没有显示错误...

3 个答案:

答案 0 :(得分:0)

请尝试添加引号,

即,

$.ajax({
    type: "POST", url: "update.php",
    data: {'srcarray': srcarray} //added quotes here 'srcarray'
});

或只是简单地传递数据,

    $.ajax({
        type: "POST", url: "update.php",
        data: srcarray
    });

答案 1 :(得分:0)

在这里找到答案https://stackoverflow.com/a/17876165/1575921
使用$.get() data: { "images" : array.get() }

答案 2 :(得分:-1)

$ .ajax的数据必须是一个字符串,或者是“PlainObject”(基本上是一个用“{}”或“new Object()”创建的简单数组,它出现了。) / p>

您可能希望通过JSON.stringify传递srcarray arg,例如在此代码段中:

$.ajax({
    type: "POST", url: "update.php",
    data: {srcarray: JSON.stringify(srcarray)}
})

这样你就会有一个字符串,应该很容易转换回另一端的数组。