来自客户端的 Wicket ajax 调用导致错误
Wicket ajax call from client causes error
一段时间后,我的客户希望我们提示用户可能与服务器保持连接。我放置了一个 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(我们的客户不想花时间进行升级,因为他们还没有决定我们的下一个框架)。
您需要在属性中添加"wr": false
:
Wicket.Ajax.ajax({u: document._sessionKeepAliveUrl, "wr": false});
wr
代表“是 Wicket Response”[1]。它告诉 Wicket Ajax/JS 是否应该尝试解释 Ajax 响应。
默认情况下 Wicket.Ajax.get/post() 处理由 AbstractDefaultAjax 行为生成的 XML 响应,但在您的情况下,您使用其父项 - AbstractAjax行为,可能会产生任何一种反应,甚至像你的情况一样没有反应。
一段时间后,我的客户希望我们提示用户可能与服务器保持连接。我放置了一个 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(我们的客户不想花时间进行升级,因为他们还没有决定我们的下一个框架)。
您需要在属性中添加"wr": false
:
Wicket.Ajax.ajax({u: document._sessionKeepAliveUrl, "wr": false});
wr
代表“是 Wicket Response”[1]。它告诉 Wicket Ajax/JS 是否应该尝试解释 Ajax 响应。
默认情况下 Wicket.Ajax.get/post() 处理由 AbstractDefaultAjax 行为生成的 XML 响应,但在您的情况下,您使用其父项 - AbstractAjax行为,可能会产生任何一种反应,甚至像你的情况一样没有反应。