利用Ajax登录和共享Session信息

原创 2018年04月17日 14:36:17

项目前后端分离各自做独立站点开发,使用jQuery.ajax方法 开发登录功能,登录后跳转内页,内页同样使用ajax读取会员数据。

ajax执行前注意设置

$.ajaxSetup({
   xhrFields: {withCredentials: true}
});
如果没有 withCredentials: true ,
后端session就会读不出信息。
同时,后端跨域代码:
import org.springframework.stereotype.Component;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Component
public class Kuayu implements Filter {
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        HttpServletRequest request = (HttpServletRequest) req;
        String url = request.getHeader("Origin");
        response.setHeader("Access-Control-Allow-Origin", url); 
        response.addHeader("Access-Control-Allow-Credentials", "true");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT,OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "Content-Type, X-Requested-With");
        chain.doFilter(req, res);
    }


    public void init(FilterConfig filterConfig) {
    }


    public void destroy() {
    }

}

平常跨域 Access-Control-Allow-Origin:* ,在此处针对Session的读取需要修改成前端站点所用的域名,并且加上 Access-Control-Allow-Credentials:true。


--=== 利用微软网格控件进行编辑输入==--

利用微软网格控件进行编辑输入(作者:王莉梅 2001年01月18日 16:51)  Visual Basic中提供了许多标准控件和定制控件,每一个控件都可以提供一组特殊的用户界面和编程能力。充分利用每...
  • coolstar
  • coolstar
  • 2001-05-04 17:31:00
  • 1603

利用redis同步登陆实现session共享

由于一直在弄oa系统,涉及与公司的其它系统整合;     今天要弄的是用redis做同步登陆,即在oa里登陆成功后即可在其它系统实现一键登陆。    oa是用shiro登陆的,shiro里...
  • java_cainiao2016
  • java_cainiao2016
  • 2017-02-14 19:49:46
  • 2956

利用ajax实现登录:验证完用户信息后如何保存用户信息并实现跳转

代码如下: 前台: $.ajax({ url : '../servlet/Login_Do', data : { name : $('#loginForm input[name=na...
  • u011250851
  • u011250851
  • 2014-03-14 22:05:52
  • 3266

session跨浏览器共享

很多文章说只要知道某个A请求sessionid,在B请求进来的时候设置 Cookie c2=new Cookie("JSESSIONID", "A请求的id"); c2.setMaxAge(100...
  • weixin_40648117
  • weixin_40648117
  • 2018-01-10 19:38:07
  • 271

单点登录三个方法及原理:共享Session、基于OpenId的单点登录、基于Cookie的OpenId存储方案

单点登录三个方法及原理:共享Session、基于OpenId的单点登录、基于Cookie的OpenId存储方案             单点登录在现在的系统架构中广泛存在,他将多个子系统的认证...
  • han2529386161
  • han2529386161
  • 2016-08-21 15:07:10
  • 7737

跨域传递用户信息

方法1:群集服务器令SESSION失效,跨域连COOKIES也用不上,似乎只能通过URL来传递用户信息..如果是内部使用的话,貌似还是挺方便好使的,哈哈步骤:域转向的时候一定要把用户信息作为URL参数...
  • harding_egg
  • harding_egg
  • 2006-08-29 00:54:00
  • 920

Ajax请求Session超时问题

我在做项目时有时会遇到session超时问题,如果session超时,平常请求没有什么问题,通过拦截器可以正确跳到登陆页面,可是你如果用ajax请求的话这就出现问题了,因为ajax是异步的,局部刷新,...
  • yaoxiaoganggang
  • yaoxiaoganggang
  • 2016-07-19 11:31:26
  • 651

web项目集群时共享session方案实践。

web项目在集群负载均衡时一个主要的问题就是如何共享session 。
  • is_zhoufeng
  • is_zhoufeng
  • 2014-05-28 17:28:55
  • 7574

asp.net网站不同子域名共享session信息

1session信息可序列化 [Serializable] [Serializable] public class UserSession { public st...
  • xuexiaodong2009
  • xuexiaodong2009
  • 2017-08-01 14:53:47
  • 496

基于Session共享的单点登录或通行证系统方案

本文主要描述如何基于Session共享来实现单点登录。 假设有两个应用www.example.com, passport.example.com。本文以SpringSession和Redis来实现相关...
  • chenhaifeng2016
  • chenhaifeng2016
  • 2017-04-16 21:59:37
  • 1449
收藏助手
不良信息举报
您举报文章:利用Ajax登录和共享Session信息
举报原因:
原因补充:

(最多只允许输入30个字)