当我在同一浏览器中打开两个Wicket Web应用程序时,似乎存在AJAX冲突,因为我看到整页刷新代替部分刷新。即使应用程序位于不同的服务器和端口号上,也是如此。
我只使用Wicket提供的开箱即用的JavaScript(tabbedPanel
,onTimerAutoRefresh
)。
也许这与回退功能有关。
当只有一个Web应用程序打开时,它可以正常运行。
我在示例网站上没有问题,所以我认为应用程序的配置有问题。
wicket-ajax.js
,第970行:
try {
redirectUrl = t.getResponseHeader('Ajax-Location');
} catch (ignore) { // might happen in older mozilla
}
// the redirect header was set, go to new url
if (typeof(redirectUrl) != "undefined" &&
redirectUrl != null &&
redirectUrl != "") {
//redirect and do a full page refresh (window.location = redirectUrl);
}else{
// do the normal ajax functionality
}
当一切正常时,标题中没有Ajax-Location。当第二个Web应用程序加载到同一个浏览器中时,第一个加载的Web应用程序上的下一个AJAX请求会在其标题中获取此行:
[Ajax-Location: .]
答案 0 :(得分:8)
您可以检查应用程序的根上下文是否有所不同?否则,您可能会在cookie级别发生冲突。它们基于主机名和路径存储。如果两个应用程序的上下文路径都是“/”,那么cookie值将被覆盖。你看到的冲突是什么。