静态html请求session丢失
2016-05-05 16:18
585 查看
[color=brown][size=small]一个临时推广的纯静态html活动页面,与原有项目分离,现活动页面要记录当前报名用户,并给当前报名用户一次抽奖机会,大致情况就是这样,程序如下:[/size][/color]
[color=brown][size=small]静态页面用的是ajax的jsonp的方式请求服务端,account也已设置到session当中,在getChestCnt.do的请求中获取不到,当时怀疑getChestCnt.do请求中的session已经不是checkChestCnt.do中设置的那个session,html页面发生两个请求中的session已不在一个回话底下,如是在两个请求的响应头中设置P3P协议就可以成功获取到值[/size][/color]
[color=brown][size=small]这个应该是和Iframe跨域session丢失是一样的问题,欢迎大伙提出不同见解。顺带贴一句网上找到的另一个设置,留作参考 response.setHeader("Access-Control-Allow-Origin" , "*" );//设置为*只是用来解决post请求跨域的问题[/size][/color]
public boolean checkChestCnts(HttpServletRequest request,Integer activeId,String account){
//当前报名信息写入session
HttpSession session = request.getSession();
session.setAttribute("activeId", activeId);
session.setAttribute("account", account);
Statistics stat = getByActiveIdAndAccount(activeId, account);//查询用户
if(null == stat){
stat = new Statistics();
stat.setActiveId(activeId);
stat.setAccount(account);
stat.setLotteryCnt(1);
statisticsDao.addStatistics(stat);//存入报名信息
return true;
}
return false;
}
/**
*检查并设置报名用户抽奖次数
*/
@RequestMapping("checkChestCnt")
public void checkChestCnts(HttpServletRequest request,HttpServletResponse response,Statistics statistics){
boolean bool = statisticsBo.checkChestCnts(request, statistics.getActiveId(), statistics.getAccount());
String data = statistics.getJsonpCallback()+ "({\"result\":"+bool+"})";
try {
response.getWriter().write(data);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 获取当前报名用户可抽奖次数
*/
@RequestMapping("getChestCnt")
public void getChestCnts(HttpServletRequest request,HttpServletResponse response,Statistics statistics){
HttpSession session = request.getSession();
Object accountObj = session.getAttribute("account");
//此处打印accountObj的值是null,checkChestCnt.do请求已先执行
//.............
}
[color=brown][size=small]静态页面用的是ajax的jsonp的方式请求服务端,account也已设置到session当中,在getChestCnt.do的请求中获取不到,当时怀疑getChestCnt.do请求中的session已经不是checkChestCnt.do中设置的那个session,html页面发生两个请求中的session已不在一个回话底下,如是在两个请求的响应头中设置P3P协议就可以成功获取到值[/size][/color]
response.setHeader("P3P","CP=CAO PSA OUR");
//response.setHeader("P3P","CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT'");
[color=brown][size=small]这个应该是和Iframe跨域session丢失是一样的问题,欢迎大伙提出不同见解。顺带贴一句网上找到的另一个设置,留作参考 response.setHeader("Access-Control-Allow-Origin" , "*" );//设置为*只是用来解决post请求跨域的问题[/size][/color]
相关文章推荐
- 静态html不支持post请求 405错误
- 微信内嵌浏览器sessionid丢失问题,nginx ip_hash将所有请求转发到一台机器
- servlet请求转发到html页面,页面样式丢失
- 跨域请求,关于后端session会话丢失的解决办法
- 静态html持续访问保持session
- 跨域请求,关于后端session会话丢失的解决办法
- 在html静态页面中获取请求参数和参数值(form)
- 跨域请求,关于后端session会话丢失的解决办法
- 为静态页面HTML增加session功能
- 纯静态html页面,js 如何拦截请求url的后缀不是.html的访问地址
- 在html静态页面中获取请求参数和参数值
- 【Node.js-3】express介绍、express-static处理静态文件请求、链式操作next()、中间件、cookie、session
- IIS7的集成模式下如何让自定义的HttpModule不处理静态文件(.html .css .js .jpeg等)请求
- 用 html 的 base 标签,解决静态资源、请求的相对路径问题
- 纯静态html页面,js 如何拦截请求url的后缀不是.html的访问地址
- ssh项目使用uploadify-v2.1.4上传插件出现诡异问题(session丢失、初始化请求)
- iis7.0 HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理
- LR HTTP/HTML脚本中过滤,不需要的请求
- CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
- 解决同一IP不同端口访问的站点iframe应用session丢失的问题