同时使用AJAX和标准HTML POST请求的多个经典ASP SessionID的

同时使用AJAX和标准HTML POST请求的多个经典ASP SessionID的

问题描述:

我使用经典ASP和一点AJAX将表单的内容发回到AJAX窗体所在的页面。在AJAX POST页面中,将这些字段中的一个(电子邮件,具体)保存到Session变量中。用户然后开始他们的业务 - 也许通过普通的HTTP再次请求页面。同时使用AJAX和标准HTML POST请求的多个经典ASP SessionID的

然而,这留下我的浏览器(Firefox 3.0.6)有两个ASPSESSIONxxxx饼干 - 我认为一个AJAX请求,一个是标准的HTTP调用。

这将导致页面(这依赖于会话变量)从已创建的两个随机选择或者ASP会话ID - 一个与Session VAR组和一个没有。

我以前在PHP和Flash ASP处理这一点,你可以在PHP中设置会话ID,但不是。

是否有任何ASP特定的方式来抵消这种行为 - 或者我应该放弃并使用cookie?

我想这里可能还有别的东西。

我一起扔一个简单的例子,我认为是做你描述和会议似乎表现。

<%@ LANGUAGE=VBSCRIPT %> 
<% if Request.Form("curid") = "" then %> 
<html> 
    <head> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js"></script> 

     <script type="text/javascript"> 
      Event.observe(window, 'load', function() { 
       Event.observe($('sessiontest'), 'click', function(event) { 
        Event.stop(event); 

        new Ajax.Request('test.asp', { 
         method: 'POST', 
         parameters: {'curid': $('curid').value}, 
         onSuccess: function(response) { 
          window.location = 'test.asp'; 
         }, 
         onFailure: function() { 
          alert('FAIL!'); 
         } 
        }); 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
      <p><input type="text" id="curid" value="<%=Session("curid")%>" /></p> 
      <p><a href="#" id="sessiontest">Save ID to Session</a></p> 
    </body> 
</html> 
<% 
else 
    Session("curid") = Request.Form("curid") 
    Response.write "I was called via POST" 
end if 
%> 

我也是Windows w/FF 3.0.6。

奔,

我敢肯定,(虽然我还没有证实是肯定的),其双ASP会话分配超过1台虚拟主机在同一个工作进程(应用程序池)的结果服务器。你的环境中有这种情况吗?

我碰到这个页面迷迷糊糊的,我只是准备调试和部署一个传统的ASP Ajax实现,而这是一个问题,我想,即使这样做之前进行调查。

而且默认的ASP会话的行为在整个Windows服务器的后代(但不知道它是如何工作在IIS的XP/Vista的器具)的变化。

我的帖子有点过时了两个月,你是否解决了这个问题?并且好奇你正在测试/使用你的情况的服务器环境/ IIS。