Java实现Jsonp跨域原理简单介绍

什么跨域

指的是服务器不一样,域名不同,端口号不同

JSONP原理

ajax请求受同源策略影响,不允许进行跨域请求,而script标签src属性中的链接却可以访问跨域的js脚本,利用这个特性,服务端不再返回JSON格式的数据,而是返回一段调用某个函数的js代码,在src中进行了调用,这样实现了跨域。

使用方式

请求页面
$.ajax({
    url:"http://localhost:8080/getUser.do",
    dataType:"jsonp",
    type:"post",
    success:function(data){
        console.info(data);
    }
})
被请求的服务器
@RequestMapping("getUser")
@ResponseBody
public String getUser(String callback){
    User user = new User();
    user.setId(1);
    user.setName("xk");
    String str = JSONObject.toJSONString(user);
    if(StringUtils.isEmpty(callback)){
        //如果没有传递参数,正常的返回对象
        return str;//{id:1,name:'xk'}
    }else{
        //jsonp处理
        return callback + "(" + str + ")";
        /*
        jQuery112402556373549774087_1533546824082({id:1,name:'xk'})
         */
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值