jquery.getJson() session不一致问题

WBOY
Release: 2016-06-23 14:22:14
Original
1166 people have browsed it

大家好,我是PHP新手,最近在做个网站,我用下面的代码异步请求到register.php,但register.php与login.php 打印出来的sessionId是不一致的,以前遇到过这个问题,是jquery版本太低造成,但现在换了最高版本也有这个问题,哪位高手帮我解决一下。

$.getJSON(“register.php”,{username:username},function(data){
   $("#lgform").submit(); //提交到login.jsp
});


回复讨论(解决方案)

session 与jquery 似乎没有什么关系吧,多半是你的代码有问题。可以贴出来以供分析。

好像有关系,我以前遇到过了,其的代码很简单,session是配置在conf.php文件中,在register.php与login.php都有引入进来

conf.php文件 
ini_set('session.cookie_domain','localhost');
session_start();
$sessionId = session_id();

register.php收到数据后
 $_SESSION["username"] = $username;

jquery返回数据后,请求到login.php
$_SESSION['username']数据为空,login.php的sessionId与与register.php的sessionId不一致

这问题都没人能回答吗,高手那么少啊

请给出完整的测试代码,总不能让人家写代码来验证你不可能出现的问题吧

这个应该应该只有在IE下存在吧!
问题根源:
  IE6/IE7支持的P3P(Platform for Privacy Preferences Project (P3P) specification)协议默认阻止第三方无隐私安全声明的cookie,Firefox目前还不支持P3P安全特性,firefox中自然也不存 在此问题了。Mircosoft对此的具体描述可以参见 Privacy in Internet Explorer 6 
解决办法是在服务器响应时输出P3P的主机头声明:
给个连接 百度文库
http://wenku.baidu.com/view/ea504514866fb84ae45c8d2c.html
贴个C#代码:在Ajax的登录页面**.ashx代码中加入
if (context.Request.Browser.Browser.ToUpper().Contains("IE"))
         context.Response.Headers.Add("P3P", "CP=CAO PSA OUR");

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!