HTML5 Forms サービスプロキシは、送信サービスのプロキシを登録する設定です。 サービスプロキシを設定するには、リクエストパラメーターを使用して送信サービスの URL を指定します submissionServiceProxy.
サービスプロキシは次の問題点を解消します。
HTML5 フォームは、次のトポロジを使用してAEMサーバーに接続できます。
HTML5 forms サービスプロキシのトポロジー
HTML5 Forms はAEMサーバーに接続して、サーバー側スクリプト、Web サービス、送信を実行します。 HTML5 forms の XFA ランタイムは、「/bin/xfaforms/submitaction」エンドポイントで Ajax 呼び出しを使用し、AEMサーバーに接続するための様々なパラメーターを指定します。 HTML5 forms はAEMサーバーに接続し、次の操作を実行します。
サーバー上で実行するようにマークされたスクリプトは、サーバー側スクリプトと呼ばれます。 サーバーサイドスクリプトと web サービスで使用されるすべてのパラメーターを下表に示します。
パラメーター |
説明 |
アクティビティ |
「アクティビティ」には、リクエストをトリガーするイベントが含まれます。 例:クリック、終了、変更 |
contextSom |
contextSom には、イベントが実行されるオブジェクトの SOM 式が含まれます。 |
テンプレート |
Template は、フォームをレンダリングするために使用するテンプレートを指定します。 |
contentRoot |
contentRoot は、フォームのレンダリングに使用するテンプレートルートディレクトリを指定します。 |
データ |
Data は、フォームのレンダリングに使用されるデータバイトを含みます。 |
formDom |
formDom は、JSON 形式のHTML5 の DOM を含みます。 |
パケット |
パケットはフォームとして指定されます。 |
debugDir |
debugDir は、フォームをレンダリングするために使用するデバッグディレクトリを指定します。 |
送信ボタンをクリックすると、HTML5 forms はデータをサーバーに送信します。 次の表に、Server5 Forms がサーバーに送信するすべてのHTMLを示します。
パラメーター |
説明 |
テンプレート |
フォームのレンダリングに使用するテンプレート。 |
contentRoot |
フォームのレンダリングに使用するテンプレートルートディレクトリ。 |
データ |
フォームのレンダリングに使用するデータバイト。 |
formDom |
JSON 形式のHTML5 の DOM。 |
submiturl |
データ XML が投稿される URL。 |
debugDir |
フォームのレンダリングに使用する debug ディレクトリ。 |
submiturl がリクエストパラメーターに存在しない場合、送信サービスプロキシはパススルーとして機能します。 これはパススルーとして機能します。 これはリクエストを /bin/xfaforms/submitaction エンドポイントに送信し、応答を XFA ランタイムに送信します。
送信サービスプロキシは、submiturl がリクエストパラメーターに存在する場合に、トポロジを選択します。
AEMサーバーがデータを投稿する場合、プロキシサービスはパススルーとして機能します。 これはリクエストを /bin/xfaforms/submitaction エンドポイントに送信し、応答を XFA ランタイムに送信します。
プロキシがデータを送信すると、プロキシサービスは、submitUrl を除くすべてのパラメーターを /bin/xfaforms/submitaction エンドポイントに渡し、応答ストリームで xml バイトを受け取ります。次に、プロキシサービスはデータ xml バイトを submitUrl に投稿して処理します。
データ (POSTリクエスト ) をサーバーに送信する前に、HTML5 forms はサーバーの接続と可用性を確認します。 接続性と可用性を検証するために、HTMLフォームは空の head リクエストをサーバーに送信します。 サーバーが使用可能な場合、HTML5 フォームはデータ (POSTリクエスト ) をサーバーに送信します。 サーバーが使用できない場合は、エラーメッセージ「サーバーに接続できませんでした」が表示されます。この事前の検出により、ユーザーがフォームに再記入するなどの問題を回避できます。プロキシサーブレットがヘッドリクエストを処理し、例外をスローしません。