当我在同一浏览器中打开两个 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: .]
您能否检查您的应用程序的根上下文是否不同?否则,您可能会在 cookie 级别发生冲突。它们是根据主机名和路径存储的。如果两个应用程序的上下文路径都是“/”,则 cookie 值将被覆盖。你所看到的冲突从何而来。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)