单点登录ajax发送jsonp请求

jquery

<script type="text/javascript">
        $(function () {
            var ticket = $.cookie("DN_TICKET");
            $.ajax({
                type:"post",
                url:"http://sso.ajstore.com/checkLoginJsonP.html",
                dataType:"jsonp",
                jsonp:"callback",
                success:function(result){
                    var user = result.data;
                    console.log(result);
                    if (result.status === 200) {
                        $("#iul").append('<li><a href="/lookforward.html">'+user.username+'</a><b>|</b></li><li><a href="javascript:;" onclick="logout()">退出</a></li>');
                    }else if(result.status === 500){
                        $("#iul").append('<li><a href="http://sso.ajstore.com/toLogin.html">登录</a></li>');
                    }
                },
                error:function(textStatus,XMLHttpRequest){
                    alert("系统异常!"+JSON.stringify(textStatus)+" ------ "+XMLHttpRequest);
                }
            });
        })
</script>

服务器端

@RequestMapping("/checkLoginJsonp")
    @ResponseBody
    public void checkLoginJsonp(HttpServletRequest request, HttpServletResponse response, String callbackFunctionName) throws IOException{
        PrintWriter out = response.getWriter();
        //获取ticket
        String ticket=CookieUtils.getCookieValue(request, "AJSTORE-TICKET");
        if(ticket==null){
            AjiaResult result = AjiaResult.build(500, "未登录");
            String returnStr = callbackFunctionName+"("+JsonUtils.objectToJson(result)+")";
            out.write(returnStr);
            out.close();
            return;
        }
        //取redis中寻找用户
        Jedis jedis = jedisUtils.getJedis();
        String userJson = jedis.hget(ticket, "SESSION_USER");
        if(userJson==null){
            AjiaResult result = AjiaResult.build(500, "未登录");
            String returnStr = callbackFunctionName+"("+JsonUtils.objectToJson(result)+")";
            out.write(returnStr);
            out.close();
            return;
        }
        //又需要用到这个用户,我们需要把redis中该ticket的生存时间重置为30分钟
        jedisUtils.expire(ticket);
        AjiaUser user = JsonUtils.jsonToPojo(userJson, AjiaUser.class);
        AjiaResult result = AjiaResult.ok(user);
        String returnStr = callbackFunctionName+"("+JsonUtils.objectToJson(result)+")";
        out.write(returnStr);
        out.close();
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值