我有一个使用gwt.2.5.1,java开发的Web应用程序。在我的应用程序中,我有一个链接“Volex页面”,它将发送到其他服务器(Volex)的请求。
如果我用“http://localhost:8085/myApp”打开我的应用程序,并且一旦用户点击就可以看到“vloex页面” 在'Volex页面'上,它将被重定向到'Volex服务器',如下所示。
window.location的( “http://167.23.543.34:8087/VolexSer/volex”)
上面的url命中volex服务器需要一些像会话ID这样的信息,为此我必须在cookie中设置会话ID,如下所示:
Date cookieDate = new Date();
cookieDate.setDate(cookieDate.getDate() + 1);
String baseUrl = "http://167.23.543.34:8087/VolexSer/volex";
Integer nDomainInitialPosition = baseUrl.indexOf("/");
Integer nDomainEndPosition = baseUrl.lastIndexOf(":");
String baseDomain = baseUrl;
if (nDomainInitialPosition == nDomainEndPosition) {
nDomainEndPosition = baseUrl.indexOf("/");
}
baseDomain = baseUrl.substring(nDomainInitialPosition + 2, nDomainEndPosition);
Window.alert("baseDomain: " + baseDomain);
String eWebPageUrl = com.google.gwt.user.client.Window.Location.getHref();
if (eWebPageUrl.contains("https://")) {
Cookies.setCookie("sessionId", LoginInfo.getSessionId(), cookieDate, baseDomain, "/", true);
} else {
Cookies.setCookie("sessionId", LoginInfo.getSessionId(), cookieDate, baseDomain, "/", false);
}
这里用两个域打开一个是“localhost”,另一个是“167.23.543.34”,如果我像上面那样设置cookie,它就不会显示在请求头中。任何人都能告诉mw上面的代码有什么不对吗?
答案 0 :(得分:0)
麻烦位于Cookie的域部分。出于安全目的,一台服务器的Cookie在另一台服务器上不可用(如果服务器不是来自一个域)。我想您需要跨域cookie之类的东西,请按照link或重建请求的URL并直接通过GET \ POST发送所需信息。