Как я могу получить FormPanel для POST JSON с ExtJS 3.1.0?

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

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

4 ответа

Решение

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

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

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

Именно так:

Ext.override(Ext.form.Action.Submit, {
    run: function() {
        // Your code here
    }
});

Просто в параметрах

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'

Другие вопросы по тегам