一段時間后,我的客戶希望我們提示用戶對服務器進行可能的保活。我放置了一個 AbstractAjaxBehavior,將 URL 傳遞給客戶端并因此發出 ajax 請求:
Wicket.Ajax.ajax({u: document._sessionKeepAliveUrl});
值中的 URL 是:
./.?3-1.IBehaviorListener.0-
斷點告訴我呼叫了該行為的 onrequest。但是后來我在客戶端收到以下錯誤:
Wicket.Ajax: Wicket.Ajax.Call.failure: Error while parsing response: TypeError: Cannot read properties of null (reading 'getElementsByTagName')
所以解決方案大多有效。該行為對回應沒有任何作用。我究竟做錯了什么。請注意,這是 Wicket 6(我們的客戶不想為升級時間付費,因為他們還沒有決定我們的下一個框架)。
uj5u.com熱心網友回復:
您需要添加"wr": false到屬性:
Wicket.Ajax.ajax({u: document._sessionKeepAliveUrl, "wr": false});
wr代表“是 Wicket 回應”[1]。它告訴 Wicket Ajax/JS 是否應該嘗試解釋 Ajax 回應。
默認情況下,Wicket.Ajax.get/post() 處理由 AbstractDefaultAjaxBehavior 生成的 XML 回應,但在您的情況下,您使用它的父級 - AbstractAjaxBehavior,這可能會產生任何型別的回應,甚至不會像您的情況那樣產生回應。
- https://github.com/apache/wicket/blob/3a1a614c1bce68f5eb4e62ae064b48c7bca508df/wicket-core/src/main/java/org/apache/wicket/ajax/attributes/AjaxAttributeName.java#L69
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/437478.html
下一篇:在按鈕單擊時加載動態下拉值
