来自客户端的Wicket ajax调用导致错误



在一段时间到期后,我的客户端希望我们提示用户对服务器进行可能的保活。我放置了一个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});

CCD_ 2代表";是Wicket响应";[1] 。它告诉Wicket Ajax/JS是否应该尝试解释Ajax响应。

默认情况下,Wicket.Ajax.get/post((处理由AbstractDefaultAjaxBehavior生成的XML响应,但在您的情况下,您使用它的父级-AbstractAaxBehavior,它可能会产生任何类型的响应,甚至不会像您的情况那样产生响应。

  1. https://github.com/apache/wicket/blob/3a1a614c1bce68f5eb4e62ae064b48c7bca508df/wicket-core/src/main/java/org/apache/wicket/ajax/attributes/AjaxAttributeName.java#L69

最新更新