Я представляю файл в своей форме в диалоговом окне.Загрузка файла не вступает в успешный успех
Он представляется правильно; файл поступает отлично на сервере через URL-адрес, который я поставляю.
В соответствии с API description Я должен предоставить 'success' = true в ответ, если все пошло прямо на сервер. Это то, что я сделал, и это то, что я вижу, возвращаясь:
Это то, что мой код выглядит следующим образом. Однако, несмотря на то, что я возвращаю 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 содержится около одной строки об этом. Я в основном добрался до места, где я проходил испытания и ошибки, и я потратил на это дни. Есть ли другая документация? Возможно, несколько страниц подробно описывают, как использовать «загрузчик файлов»?
Возможно, проблема в неправильном JSON, который возвращается. Я вижу, что возвращается и объект с атрибутами «success» и «msg», но что происходит после них ... другой вложенный объект? –
да, его больше ничего не важно. Разве это не разрешено? –
Это может как-то предотвратить событие «успеха» от запуска (т. Е. Синтаксический анализатор разрывается посередине). Попытайтесь изменить его, и вы точно это поймете. –