Как я могу получить FormPanel для POST JSON с ExtJS 3.1.0? - PullRequest
3 голосов
/ 04 февраля 2010

По умолчанию FormPanel в ExtJS 3.1.0 публикует поля формы как application/x-www-form-urlencoded при вызове функции submit ().

Есть ли способ заставить его публиковать JSON?

Ответы [ 4 ]

3 голосов
/ 04 февраля 2010

Вы можете использовать getValues() для получения значений, а затем Ext.encode() их и вручную сделать Ext.Ajax.request({}) с этими данными.

2 голосов
/ 04 февраля 2010

Возможно, вы захотите расширить Ext.form.Action.Submit для кодирования параметров в виде JSON, а не для URL-кодирования их в теле.

1 голос
/ 14 ноября 2010

Вы можете переопределить Ext.form.Action.Submit.run.

Так же, как это:

Ext.override(Ext.form.Action.Submit, {
    run: function() {
        // Your code here
    }
});
0 голосов
/ 27 ноября 2014

Просто укажите в параметрах

var formData = App.formPanel.getValues(false);
Ext.net.DirectMethod.request({ 
     url: '/Product/Save',
     params: formData,
     success: function(jsonResult){
     }
});

или

App.formPanel.submit();

Перед установкой App.formPanel.url = '/Product/Save'

...