我正在使用新的
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'});
最后一行不起作用.我发送带有此代码的请求
$.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') } });
提前致谢.
解决方法
从您的语法,您似乎试图传递一个对象,而不是一个数组.我不认为你可以通过HTML表单传递对象.
{ key1 : value1,key2 : value2 }
VS
[ value1,value2 ]
这是一般JS syntax的方便参考