我正在尝试使用JSON中的params向服务器提交表单。
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()
提交模型,它会起作用,但是如何在运行中从表单创建模型(不对字段进行两次硬编码)?
答案 0 :(得分:2)
我认为下面会解决你的目的。
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)}
});