HTML5表單服務代理

HTML5表單服務代理是用於註冊提交服務代理的配置。 要配置服務代理,請通過請求參數​submissionServiceProxy​指定提交服務的URL。

服務代理的優勢

服務代理消除了以下內容:

  • HTML5表單工作流程需要為HTML5表單使用者開啟提交服務「/content/xfaforms/submission/default」。 這會讓AEM伺服器受到更廣泛的非預期受眾。
  • 服務URL內嵌在表單的執行階段模型中。 無法更改服務URL路徑。
  • 提交是兩步驟程式。 若要提交表單資料,提交至少需要兩個伺服器歷程。 因此,會增加伺服器上的負載。
  • HTML5表單會以POST請求傳送資料,而非PDF請求。 對於同時包含PDF和HTML5表單的工作流程,需要兩種不同的處理提交方法。

拓撲

HTML5表單可使用下列拓撲來連線至AEM伺服器。

  • AEM伺服器或HTML5表單透過POST傳送資料至伺服器的拓撲。
  • 代理伺服器將POST資料發送到伺服器的拓撲。

HTML5表單服務代理拓撲

HTML5表單服務代理拓撲

HTML5表單會連線至AEM伺服器,以執行伺服器端指令碼、網站服務和提交。 HTML5表單的XFA執行階段會使用「/bin/xfaforms/submitaction」端點上的Ajax呼叫,搭配各種參數以連線至AEM伺服器。 HTML5表單會連接AEM伺服器以執行下列操作:

執行伺服器端指令碼和Web服務

標籤為在伺服器上運行的指令碼稱為伺服器端指令碼。 下表列出了伺服器端指令碼和Web服務中使用的所有參數。

參數

說明

活動

活動包含觸發請求的事件。 例如點按、退出或變更

contextSom

contextSom包含執行事件之物件的SOM運算式。

範本

模板包含用於呈現表單的模板。

contentRoot

contentRoot包含用於呈現表單的模板根目錄。

資料

資料包含用於呈現表單的bata位元組。

formDom

formDom包含JSON格式之HTML5表單的DOM。

封包

資料包指定為表單。

debugDir

debugDir包含用於呈現表單的調試目錄。

提交資料

按一下提交按鈕時,HTML5表單會將資料傳送至伺服器。 下表列出HTML5表單傳送至伺服器的所有參數。

參數

說明

範本

用於呈現表單的模板。

contentRoot

用於呈現表單的模板根目錄。

資料

用於呈現表單的bata位元組。

formDom

JSON格式的HTML5表單DOM。

提交url

發佈資料XML的URL。

debugDir

用於呈現表單的調試目錄。

提交代理如何運作?

如果要求參數中未出現提交url,則提交服務代理會作為傳遞。 它是傳遞。 它會將請求發送到/bin/xfaforms/submitaction端點並將響應發送到XFA運行時。

如果請求參數中存在提交url,則提交服務代理將選擇拓撲。

  • 如果AEM伺服器發佈資料,Proxy服務會作為傳遞。 它會將請求發送到/bin/xfaforms/submitaction端點並將響應發送到XFA運行時。

  • 如果代理發佈資料,則代理服務會將submitUrl以外的所有參數傳遞到​/bin/xfaforms/submitaction​端點,並在響應流中接收xml位元組。 接著,代理服務會將資料xml位元組發佈至submitUrl以進行處理。

  • 在將資料(POST請求)傳送至伺服器之前,HTML5表單會驗證伺服器的連線性和可用性。 為了驗證連接性和可用性,HTML表單會向伺服器發送空頭請求。 如果伺服器可用,HTML5表單會將資料(POST請求)傳送至伺服器。 如果伺服器不可用,則會顯示錯誤消息​無法連接到伺服器,。 進階偵測可避免使用者重新填寫表單的麻煩。 代理Servlet處理頭請求,且不會引發異常。

本頁內容