跨域 AJAX/Javascript - 人为地使用 sessionid



我目前有一个RESTful Web服务,它通过会话识别客户端。

我有一个使用ajax/javascript访问RESTful Web服务内容的客户端。我通过使用标头响应请求来允许这种情况发生:Access-Control-Allow-OriginAccess-Control-Allow-CredentialsAccess-Control-Allow-Methods

但是,尽管客户端可以访问内容的会话,但每个请求都被视为不同的会话,因为 cookie 不能跨域使用。

不想修改我的服务器代码来专门迎合这种风格的客户端,我更喜欢围绕客户端的工作来提供使用会话的外观。

由于我不想通过会话存储任何内容,因此我只使用 jsessionid 作为客户端标识符,我认为我可以人为地将&jsessionid=注入到 URL,至少从服务器端,使客户端看起来正确跟踪会话。

这似乎不起作用 - 有人可以建议我如何让我的客户表现得好像它使用相同的会话 ID 一样吗?

。我假设我可以人为地将 &jsessionid= 注入到 URL 中......

jsessionid不是查询字符串参数。您希望人为地添加;jsessionid=...(在任何 & 之前 URL 中(,而不是&jsessionid=... .

对于背景...我制作了一个名为 kitgui.com 的产品,它允许跨域通信并模拟内容管理的页面保存,但实际上是通过iframe跨域与安全服务器进行对话。

您不必修改服务器代码。您可以使用 iframe + postMessage,假设您不需要对以下 IE8 的支持。所有其他现代浏览器都支持这一点。对于较低的浏览器,还有iframe轮询技术。您也不需要在非 SSL 上的查询字符串中公开您的会话 ID。您可以与您的iframe对话,以获取通过javascript登录或不登录的状态。会话信息保留在 iframe 的域中,位置应保留

此链接可以帮助您 -> http://benalman.com/projects/jquery-postmessage-plugin/

相关内容

  • 没有找到相关文章