我看了下,是这样的,
最开始AJAX请求,确实把$_GET["text"]赋值给了,$_SESSION['searchtext'],
但之后跳转到search.php页面之后,
这就相当于你直接访问search.php这个页面,是没有带TEXT值的,所以自然接收不到,
你可以把PHP文件改成下面这种,这样子就OK的,
<?phpsession_start()
if (!isset($_SESSION['searchtext'])) {
$_SESSION['searchtext'] = $_GET["text"]
}
echo "欢迎来到搜索界面!"
echo "您搜索的内容为:".$_SESSION["searchtext"]
这个问题按理说应该会改变的,无论是异步还是同步的调用。如果程序没错误的话,我怀疑
1.浏览器的问题。你是不是用的IE,内核是不是IE8呢?如果是的话建议你用用别的浏览器试试看,例如火狐,google等,或者卸载 KB976662 补丁(IE的补丁)
2,缓存问题,也就是说在你这个方法调用之前这个session是空值,然后缓存了就一直是空值。解决办法就是在你的请求URL后面加一个时间戳 例如"Ajax.aspx?act=Edit&r="+ Math.random()
3也或许是你的session丢失了,可能原因就是超时了,或者无故丢失,如果后者的话
建议你修改配置文件
例如:<sessionState mode='StateServer' stateConnectionString='tcpip=127.0.0.1:' sqlConnectionString='data source=127.0.0.1Trusted_Connection=yes' cookieless='true' timeout='60'/>
这样的话除非你的电脑蹦了,否则session不会丢失的
以上只是猜测不知能否帮到你
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)