表单提交文件和复杂的Json

时间:2014-03-24 22:41:54

标签: javascript jquery json extjs

如何提交复杂的Json对象以及文件上传?

我可以成功地创建一个简单的json对象,但只能使用复杂的json:

e.g。 [file] + {simple:object} - 好的

e.g。 [file] + {some:{complex:' asdf'},object:[' str1',' str2']} - 失败

    //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...
        }
    });

当params是一个具有多个图层的复杂Json对象时,上面的代码失败了。我正在使用ExtJs,对于那些使用JQuery的人我猜它是html表单所以我的问题在不同的js libs中是相同的。

1 个答案:

答案 0 :(得分:1)

在进行文件上传时,Ext会对隐藏的iframe执行表单发布,因此您需要解析数据。