我有一个应用程序,一个特定的原因将奇怪地与托管服务器交互的时刻。没有Cookie的HttpSession
的应用是通过较大的门户来访问,并且可以在门户显示内被封装,然而,它广泛地使用未由门户截获AJAX请求。这些请求直接发送到托管服务器,但是我看到一个问题。
当第一个AJAX请求时(一个小的方式进入申请流程)(因为它是发送此不同的服务器比它收到了明显)
Ajax请求没有与它携带的JSESSIONID的cookie有没有一种很好的Grails方法来查找AJAX调用应该与之交互的会话。我已经尝试将grails.views.enable.jsessionid设置为true,但这仅适用于浏览器不接受cookie的情况。
从他的问题看来,会话cookie没有通过门户传递给用户。如果他不能通过门户向主要请求添加一个cookie,那么这将不起作用。如果门户本质上是一个愚蠢的代理,那么不幸的是这并不令人惊讶。 – PlexQ 2012-01-04 14:37:22
@PlexQ - 是的,这就是“cookie”在引号中的原因。这不是一个正常的cookie,但它的功能就像一个。这就是我的回应的整个观点......使用另一种方法来识别应用程序哪个会话应该用于一系列请求。在所有情况下,它仍然是一个概念,只是一个不同的实现。 – cdeszaq 2012-01-04 14:41:03
如上所述寻求一种'cookie'解决方案。我已经实现了会话监听器并捕获会话ID,并将我需要的最小上下文存储在该会话密钥下的servletContext中。然后,在每个ajax请求上,我还传递会话密钥并根据servletContext中存在的会话验证请求。目前它正在为一台服务器工作,但当我不得不扩展到多台服务器时,我需要重新考虑更强大的功能。我认为ehcache复制可以成为我的朋友 – kblair 2012-01-05 14:29:29