Javascript 表单提交文件和复杂的Json
如何随文件上传一起提交复杂的Json对象 我可以成功地创建一个简单的json对象,但在创建复杂的json时失败: e、 g.[file]+{simple:object}——好的 e、 g.[file]+{some:{complex:'asdf'},对象:['str1','str2']}失败Javascript 表单提交文件和复杂的Json,javascript,jquery,json,extjs,Javascript,Jquery,Json,Extjs,如何随文件上传一起提交复杂的Json对象 我可以成功地创建一个简单的json对象,但在创建复杂的json时失败: e、 g.[file]+{simple:object}——好的 e、 g.[file]+{some:{complex:'asdf'},对象:['str1','str2']}失败 当params是一个具有多个层的复杂Json对象时,上述代码将失败。我使用的是ExtJs,对于那些使用JQuery的人来说,我猜这是html表单,所以我的问题在不同的js库中都是一样的。在上传文件时,Ext会
当params是一个具有多个层的复杂Json对象时,上述代码将失败。我使用的是ExtJs,对于那些使用JQuery的人来说,我猜这是html表单,所以我的问题在不同的js库中都是一样的。在上传文件时,Ext会将表单发布到隐藏的iframe,所以你需要解析数据。对于每个参数,它会将值粘贴到隐藏的输入中并发布值。归根结底,你需要以表单帖子的形式来阅读,而不是JSON blob。谢谢,这并不是我所期望的,但我已经完成了这项工作,这并不完美。我需要注意url的最大大小:“Url编码/解码-这些方法可用于将JSON数据转换为可作为GET字符串一部分传输的格式,反之亦然”
//here is the simple json data
var params = {simple: 'jsonData'};
//here is the header to enable json stuff
var headers = {
'Content-Type': 'application/json',
'Accept': 'application/json, text/javascript, */*',
'dataType': 'json'
};
//assume we have some files in that html form
var files = fi.button.fileInputEl.dom.files;
form.submit({
url: '/some/api',
waitMsg: 'Uploading your file...',
headers: headers,
params: params,
success: function(a, b) {
//done...
}
});