2016-09-28 13 views
0

JSONオブジェクトをHTML隠しフォームに投稿しようとしています。 私はモデルオブジェクトをバックエンドで準備し、後で文字列化されるフロントエンド上のかなり複雑なJSONオブジェクトとして取得できます。今私はそれを投稿する必要があります。問題は、もちろん、すべての属性をループすることなくフォームに変換する方法がわからないということです。動作しませんでした隠しフォームhtmlでJSONを投稿するには?

<form enctype='application/json' action=someUrl method="post" target="_blank" name="pdfSheetForm" id="pdfSheetForm" accept-charset="utf-8"> 
    <input type="hidden" value="${str}" name="data"> 
</form> 

:私はのような 'データ' のパラメータを使用しようとした

str = {"language":"en","country":"GB","objectId":24639, ...} 

は基本的に私は私のJavaScriptで、今のような文字列を持っています。私は何が問題なのか分かりません。目標はstrのようにstrのようにJSONを投稿することです。 "{" language ":...}"

+1

テンプレートエンジンを使用する必要があるか、それをループする必要があります。 – brk

+0

あなたの 'str'変数は文字列ではありません。' $( '#hiddeninput')を試してみてください。setAttribute( 'value'、document.encodeURIComponent(JSON。 stringype(str))) ' –

+0

enctype [application/json](https://www.w3.org/TR/html-json-forms/)は放棄されました。それを削除し、正しく投稿するかどうかを確認してください。 –

答えて

-1

var str = JSON.stringify(your_object)を使用すると、JSONオブジェクトを単純な文字列にすることができます。バックエンドを使用すると、受け取ったときにその文字列をJSONオブジェクトに再度解析できます。

次に、pdfSheetForm.data.value = strを使用して、オブジェクトデータをフォームに文字列として追加します。

関連する問題