2014-11-04 3 views
0

Я представляю файл в своей форме в диалоговом окне.Загрузка файла не вступает в успешный успех

Он представляется правильно; файл поступает отлично на сервере через URL-адрес, который я поставляю.

В соответствии с API description Я должен предоставить 'success' = true в ответ, если все пошло прямо на сервер. Это то, что я сделал, и это то, что я вижу, возвращаясь:

enter image description here

Это то, что мой код выглядит следующим образом. Однако, несмотря на то, что я возвращаю success = true, он всегда идет в случай 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); 
     } 
    } 
}); 

Я этого не понимаю. Не success = true означает, что вызов вызова будет вызван?

Документация Extjs по загрузке файлов действительно ужасна. В ExtJS в Action содержится около одной строки об этом. Я в основном добрался до места, где я проходил испытания и ошибки, и я потратил на это дни. Есть ли другая документация? Возможно, несколько страниц подробно описывают, как использовать «загрузчик файлов»?

+0

Возможно, проблема в неправильном JSON, который возвращается. Я вижу, что возвращается и объект с атрибутами «success» и «msg», но что происходит после них ... другой вложенный объект? –

+0

да, его больше ничего не важно. Разве это не разрешено? –

+0

Это может как-то предотвратить событие «успеха» от запуска (т. Е. Синтаксический анализатор разрывается посередине). Попытайтесь изменить его, и вы точно это поймете. –

ответ

2

Проблема заключается в некорректном JSON, который принимается с сервера. Удалите фигурные скобки вокруг «файлов», и он будет работать.

Смежные вопросы