为什么运行多个Wicket应用程序会导致AJAX冲突?

时间:2011-04-11 09:36:01

标签: ajax wicket conflict

当我在同一浏览器中打开两个Wicket Web应用程序时,似乎存在AJAX冲突,因为我看到整页刷新代替部分刷新。即使应用程序位于不同的服务器和端口号上,也是如此。

我只使用Wicket提供的开箱即用的JavaScript(tabbedPanelonTimerAutoRefresh)。

也许这与回退功能有关。

当只有一个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: .]

1 个答案:

答案 0 :(得分:8)

您可以检查应用程序的根上下文是否有所不同?否则,您可能会在cookie级别发生冲突。它们基于主机名和路径存储。如果两个应用程序的上下文路径都是“/”,那么cookie值将被覆盖。你看到的冲突是什么。