2015-01-15 42 views
1

我想提交一个表单到服务器的JSON参数。提交表单到服务器作为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是假)”。但是,这个句子已经被证明是错误的,因为无论何时文件字段在表单中,表单都是以多部分形式提交的。

那么,有没有人知道我可以如何获得作为JSON提交的表单?

可能性2:我知道如果我通过model.save()提交模型,但是如何从表单即时创建模型(而不是两次硬编码字段)?

+0

样,如果你给了什么的参数对象,如'PARAMS:{myJson:Ext.encode(form.getValues())}'然后在服务器端JSON_decode应该给你JSON对象的参数? –

回答

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)} 
}); 
相关问题