Как я могу получить 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'