继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

最简洁的jq实现jsonp跨域

qq_心向远方_0
关注TA
已关注
手记 11
粉丝 8
获赞 377

最近一直在找跨域的解决方法,找了很久,网上有些不是太详细就是太复杂,今天我把这些东西整理出来,让大家可以更快的实现跨域请求,跨域不是梦。


首先肯定是最简单的请求使用jq的$.getJSON()

$.getJSON(url+"?callback=?", 
function(json){ 

}); 

这是基本格式,下面是例子

$.getJSON("http://localhost:8080/crcp/rcp/t99eidt/testjson.do?jsonp=?",function(data)  {   

            }  
);   

第一个?代表后面是参数,与咱们一般调用一样。重要的是第二个?,则是jquery动态给你生成毁掉函数名称。
图片描述

 $.ajax({  
    type:"GET",  
    async :false,  
    url:"http://localhost:8080/crcp/rcp/t99eidt/testjson.do",  
    dataType:"jsonp",  
    success:function(data){  
    var html=JSON.stringify(data.RESULTSET);  

    },  
    error:function(){  
        alert("error");  
    }  

});  

注意:这种形式,默认的参数是callback,而不是会是其他。则action代码中获取calback值则
String cb=request.getParameter("callback");
并且生成的回调函数,默认也是类似上述一大串数字。
根据Ajax手册,更改callback名称以及回调函数名称。
http://www.w3school.com.cn/jquery/ajax_ajax.asp
jsonp:jsonp,则请求的地址为:http://localhost:8080/crcp/rcp/t99eidt/testjson.do?jsonp=自动生成回调函数名
jsonpCallback:callbackfunction,则请求的地址为:
http://localhost:8080/crcp/rcp/t99eidt/testjson.do?jsonp=callbackfunction
最后返回前台的是:
callbackfunction(具体的json值)

打开App,阅读手记
18人推荐
发表评论
随时随地看视频慕课网APP