美文网首页
关于Ajax异步请求的跨域以及Session问题

关于Ajax异步请求的跨域以及Session问题

作者: hbhey | 来源:发表于2019-05-31 14:11 被阅读0次

    根据浏览器的保护规则,跨域时候的SeeionId是不会被保存下来,即我们的每次Ajax请求都会是一个新的请求,都会产生新的SeesionId,后台自然不能根据前台传过来的SeesionId判断你是否处于登录状态。

    我们可以对前台的Ajax以及后台进行相应的修改,就可以对上述问题进行完美解决:
    一:前端Ajax请求

    $.ajax({    
        url:url,
        xhrFields: {      
             withCredentials: true   // 加上此部分
        },  
        crossDomain: true,     // 加上此部分
        success:function() {
        }, 
        error:function() {
        }
    });
    

    二:Controller部分代码

    @RequestMapping(value="XXXX.do")
    @ResponseBody
    public String XXXXX( HttpServletRequest request, HttpServletResponse response){
    // 解决跨域
    response.addHeader("Access-Control-Allow-Origin",request.getHeader("Origin"));
    // 跨域的session 保证同一性
    response.addHeader("Access-Control-Allow-Credentials","true");
    ///
      somecode
    ///
    

    参考https://www.cnblogs.com/renhaisong/p/6892341.html

    https://blog.csdn.net/z_sk789/article/details/51460173

    相关文章

      网友评论

          本文标题:关于Ajax异步请求的跨域以及Session问题

          本文链接:https://www.haomeiwen.com/subject/jlwwtctx.html