2014-03-24 53 views
0

如何提交複雜的Json對象以及文件上傳?表單提交文件和複雜的Json

我可以做成功一個簡單的JSON對象,不僅不能用複雜的JSON:

例如[file] + {simple:object} - 好吧

例如[文件] + {一些:{絡合物: 'ASDF'},對象:[ '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庫中是相同的。

回答

1

在進行文件上傳時,Ext會將表單發送到隱藏的iframe,因此您需要解析數據。

+0

可否請您詳細解釋數據解析部分? thx :) – Tom

+0

對於每個參數,它將該值粘貼到隱藏的輸入中併發布該值。歸結起來,你需要將它作爲表單帖子閱讀,而不是JSON blob。 –

+0

謝謝,不完全是我期待的,但我得到了這項工作,這是不完美的,我需要介意的URL最大尺寸:http://docs.sencha.com/core/manual/content/utility.html 「網址編碼/解碼 - 這些方法對於將JSON數據轉換爲可作爲GET字符串的一部分傳輸的格式非常有用,反之亦然」 – Tom