2014-11-04 49 views
0

我在對話框中以我的表單提交文件。文件上傳表單在成功時不會成功

它被正確提交;該文件通過我提供的URL在服務器上完美無缺。

根據API description我應該在響應中提供一個'成功'=真如果一切正常在服務器上。這是我做的,這是我看到回來:

enter image description here

這是我的代碼如下所示。不過,即使我返回成功=真,它總是去案件Ext.form.action.Action.SERVER_INVALID

frm.submit({ 
    url: URLs.fileUploadURL, 
    waitMsg: 'Uploading file...', 
    success: function(form,action){ 
     alert('Success', 'Processed file on the server'); 
    }, 
    failure: function(form, action) { 

     alert('FAIL : action.failureType ' + action.failureType) 

     switch (action.failureType) { 
      case Ext.form.action.Action.CLIENT_INVALID: 
       Ext.Msg.alert('Failure', 'Form fields may not be submitted with invalid values'); 
       break; 
      case Ext.form.action.Action.CONNECT_FAILURE: 
       Ext.Msg.alert('Failure', 'Ajax communication failed'); 
       break; 
      case Ext.form.action.Action.SERVER_INVALID: //Always goes here :(
       Ext.Msg.alert('Failure', action.result.msg); 
     } 
    } 
}); 

我不明白這一點。 成功=真是否意味着成功回調將被稱爲?

關於'文件上傳'的Extjs文檔真的很殘酷。 ExtJS in Action包含大約一行關於它的內容。我主要通過反覆試驗得到了我的位置,並且花了好幾天的時間。那裏有其他文件嗎?也許有幾頁詳細說明如何使用'文件上傳器'?

+0

也許問題出在了錯誤的JSON上,它被返回。我看到返回的是具有「成功」和「味精」屬性的對象,但它們之後的東西是......另一個嵌套對象? – 2014-11-04 13:19:55

+0

是的,它更多的東西多數民衆贊成並不重要。這是不允許的? – 2014-11-04 13:25:52

+0

它可以以某種方式防止觸發時發生「成功」事件(即解析器在中途停頓)。試着改變它,你肯定會知道。 – 2014-11-04 13:27:08

回答

2

問題出在從服務器接收到不正確的JSON。刪除「文件」周圍的大括號,它會起作用。