Отправив форму на сервер как json
Я пытаюсь отправить на сервер форму с параметрами в формате JSON.
form.submit({
url:'JSONSaveEntry',
method:'POST'
});
но он отправляет все как form-www-urlencoded.
Я уже проверил, что ни одно поле не имеет isFile
установлен в true
(но тогда, это пошло бы как multipart-formdata
) и это standardSubmit
является false
,
Я также пытался использовать
Ext.Ajax.request({
url:'JSONSaveEntry',
method:'POST',
params:form.getValues()
});
а также
Ext.Ajax.request({
url:'JSONSaveEntry',
method:'POST',
params:Ext.encode(form.getValues())
});
Каждая подача делается как form-www-urlencoded
, хотя в документах четко указано "выполняет представление значений формы на основе Ajax (если standardSubmit имеет значение false)". Но затем, это предложение уже доказано неверным, потому что когда поле файла находится в форме, форма представляется как составная часть.
Итак, кто-нибудь знает, как я могу получить форму как JSON?
Возможность 2: я знаю, что это работает, если я отправляю модель через model.save()
, но как мне создать модель из формы на лету (без жесткого кодирования полей дважды)?
1 ответ
Я думаю, что ниже поможет решить вашу цель.
Ext.Ajax.request({
url:'JSONSaveEntry',
method:'POST',
headers: { 'Content-Type': 'application/json' },
jsonData : JSON.stringify(form.getValues()),
success : function(response){ console.log("response from server")},
failure : function(error){console.log(error)}
});