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()ますが、その場でフォームからモデルを作成するにはどうすればよいでしょうか (フィールドを 2 回ハードコーディングする必要はありません)。

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 に答える