Rai*_*off 9 arrays jquery post html5 image
我正在使用新的HTML5 FormData-Object通过Ajax发布一些值和图像.它到目前为止工作正常.现在,我想使用这个对象发布一个数组,但我在服务器端的所有内容都是"[object - object]".如何使用formdata发布数组?
到目前为止我得到了什么
var formData=new FormData();
formData.append('text', $('#text').attr('value'));
formData.append('headline',$('#headline').attr('value'));
formData.append('myarray',{key1: 'bla', key2: 'blubb'});
Run Code Online (Sandbox Code Playgroud)
最后一行不起作用.我发送带有此代码的请求
$.ajax({
url: 'xyz',
data: formData,
type: 'POST',
processData: false,
contentType: false,
success: function(data) {
var decoded=$.parseJSON(data);
displaySuccess('Success', decoded.message);
},error: function(data){
var decoded=$.parseJSON(data);
displayError('Error', decoded.message);
},complete: function(data){
$('#cursor').hide();
$("#submitbutton").removeAttr('disabled')
}
});
Run Code Online (Sandbox Code Playgroud)
提前致谢.
Mat*_*ton 16
.append()在关联数组的每个元素上使用可能会产生您期望的结果.
取代这一行:
formData.append('myarray',{key1: 'bla', key2: 'blubb'});
Run Code Online (Sandbox Code Playgroud)
您可以尝试以下方法:
var myarray = {key1: 'bla', key2: 'blubb'};
jQuery.each(myarray, function(key, value) {
formData.append('myarray['+key+']', value);
});
Run Code Online (Sandbox Code Playgroud)
谢谢.我现在想出了这个解决方案:
for (i = 0; i < social_networks.length; i++) {
formData.append("myarray["+i+"][mykey]",arr[i]['mykey']);
formData.append("myarray["+i+"][mykey2]",arr[i]['mykey2']);
}
Run Code Online (Sandbox Code Playgroud)
小智 3
从您的语法来看,您似乎正在尝试传递一个对象,而不是一个数组。我不认为你可以通过 HTML 表单传递对象。
{ key1 : value1 , key2 : value2 }
Run Code Online (Sandbox Code Playgroud)
与
[ value1, value2 ]
Run Code Online (Sandbox Code Playgroud)
这是一般JS 语法的便捷参考
| 归档时间: |
|
| 查看次数: |
23597 次 |
| 最近记录: |