Extjs4 - отправка формы всегда возвращает ошибку - PullRequest
0 голосов
/ 25 марта 2019

Я отправляю файл Excel с помощью формы ExtJS 4, но даже если запрос успешен, он регистрирует ошибку.Что ожидает функция form.submit?

Console

Форма

xtype: 'form',
name: 'upload_form',
items: [{
      text: 'File Upload',
      xtype: 'fileuploadfield',
      name: 'upload_btn',
      buttonOnly: true,
      hideLabel: true,
      allowBlank: false,
      clearOnSubmit: false
}]

Контроллер

'filter fileuploadfield[name="upload_btn"]': {
            change: this.UploadClick
        }
    ...
    UploadClick: function (vb, s) {
    var controller = this,
        form = controller.getUploadForm();

    if (form.isValid()) {
        form.submit({
            url: '/upload',
            waitMsg: 'Uploading your csv...',
            success: function (fp, o) {
                Ext.Msg.show({
                    title: 'Upload Complete',
                    msg: o.response.responseText,
                    icon: 'save-success',
                    buttons: Ext.Msg.OK
                });
            },
            failure: function (fp, o) {
                Ext.Msg.show({
                    title: 'Upload Error',
                    msg: o.response.responseText,
                    icon: Ext.MessageBox.ERROR,
                    buttons: Ext.Msg.OK
                });
            }
        });
    }
}

Java return

Response.ResponseBuilder builder;
...
builder = Response.ok(null);
        return builder.build();

Ответы [ 2 ]

1 голос
/ 25 марта 2019

не отправлять null Ответ ... но ожидаемый JSON вместе с правильным заголовком типа контента:

String json = "{\"success\": true}";
return Response.ok(json, MediaType.APPLICATION_JSON).build();
1 голос
/ 25 марта 2019

Вам необходимо прикрепить параметр success в ответ:

Например:

{
    "success":true, // note this is Boolean, not string
    "msg":"File uploaded"
}

Как и в документации: https://docs.sencha.com/extjs/4.2.6/#!/api/Ext.form.Basic-method-submit

...