jQuery AJAX通信でHTTPリクエストヘッダに任意のコードを付与するには、
headers{ }, を付ければ良いのだが、
折角なので、Wicket でページ表示のタイミング=Page コンストラクタ実行で付与する値を決めて
送るようにする。
ページが読込む JavaScript は、以下のように用意(途中省略)
var custom_id; var c_type; var setCustom = function(a, b){ custom_id = a; c_type = b; }; // 省略 $.ajax({ type: 'POST', timeout: 10000, url: "/xxxx", headers: { "CUSTOM_ID" : custom_id, "C_TYPE" : c_type }, data: { "kind":"add", "xscaleLast": xscaleLast }, dataType: 'json', cache: false, }).done(function(e){ // 成功時 }).fail(function(e){ // 失敗時 }).always(function(e){ });
Webページの方は、onAfterRender() で上の setCustom() を実行する。
後は何らかのトリガで上の AJAX通信を実行する。AjaxRequestTarget でも使用すればいいだろう。
public class LineBasicPage extends WebPage{ private String custom_id; private String c_type; /** コンストラクタ. */ public LineBasicPage(){ // HTTPヘッダに付与したいコード custom_id = "0014"; c_type = "private"; } @Override protected void onAfterRender() { super.onAfterRender(); JavaScriptUtils.writeJavaScript(getResponse(), "setCustom('" + custom_id + "','" + c_type + "');"); } }