2015-01-15 46 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)} 
}); 
相關問題