JFinal ajax 跨越请求 jsonp

本文详细介绍了如何在JFinal框架中使用JSONP来解决Ajax跨域请求的问题。通过实例代码解析了JFinal控制器处理JSONP请求的方法,以及客户端如何设置回调函数进行数据交互,帮助开发者更好地理解和应用JSONP技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<p>通过JFinal 框架,ajax跨域请求。</p><p>后台代码:</p><p><pre name="code" class="java"> public void dologin() {
      
      
        JSONObject json = new JSONObject();
        Subject subject = SecurityUtils.getSubject();
        UsernamePasswordToken token = new UsernamePasswordToken(getPara("account"),
                EncryptionKit.md5Encrypt(getPara("password")));
        try {
            // 4、登录,即身份验证
            subject.login(token);
            String from = getPara("from");
            String findSql = "(1=1) and ";
            // 获取信息
            String account = token.getUsername();
            if (account != null)
                findSql += "account like '" + account + "' and ";
            findSql += " (1=1);";
            SysUser data_need = SysUser.dao.where(findSql).get(0);
           
            int Id = data_need.getInt("id");
            json.put("id", Id);
            json.put("account", Account);
            if ("1".equals(is_app)) {
            	//app端登录session不过期
            	subject.getSession(true).setTimeout(-1);
            	renderJson("jsonpCallback({\"data\":"+json.toJSONString()+"})");
          //      renderJson(putjson("0", data, "success"));
            	
                            } else {
            	subject.getSession(true).setTimeout(60*60*1000);
                if (StringKit.isBlank(from))
                    redirect("/");
                else {
                    redirect(from);
                }
            }

        } catch (AuthenticationException e) {
            // 5、身份验证失败
            if ("1".equals(is_app)) {           	
                renderJson(putjson("330", "", "failed"));
            } else {
                alertAndGoback("用户名或密码错误,请重新登录");
            }
        }
    }

前台代码:

function doLogin(account,password){
	


	$.ajax({
			
		
			url : "http://localhost:10080/Passport/dologin",//baseURL
			data : {
				is_app : 1,
				account :  account,
				password : password,
			},
			type : "post",
			//crossDomain: true,
			dataType : "jsonp",
			jsonp : "callback",
			jsonpCallback:"jsonpCallback",
			success : function(data) {
				var temp = (data.data.id);
				location.href="http://www.baidu.com";
			},
			error : function(XMLHttpRequest, textStatus, errorThrown) {
				alert(XMLHttpRequest.status);
				return false;
			}
    });
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值