1

我正在尝试使用 JSON 中的参数向服务器提交表单。

form.submit({
  url:'JSONSaveEntry',
  method:'POST'
});

但它会将所有内容作为 form-www-urlencoded 发送。

我已经检查过没有字段isFile设置为true(但随后,它将发送为multipart-formdata),standardSubmitfalse.

我也尝试使用

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(),但是我将如何从动态表单创建模型(无需对字段进行两次硬编码)?

4

1 回答 1

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)}
});
于 2015-01-16T20:37:35.293 回答