【发布时间】:2015-01-15 15:02:27
【问题描述】:
我正在尝试使用 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() 提交模型,它会起作用,但是我如何从动态表单创建模型(无需对字段进行两次硬编码)?
【问题讨论】:
-
如果你给了一个参数对象,比如
params:{myJson:Ext.encode(form.getValues())},然后在服务器端 JSON_decode 参数应该给你你的 JSON 对象呢?
标签: sencha-touch sencha-touch-2 sencha-touch-2.3