您的位置:首页 > Web前端 > JavaScript

jsonp跨域调用

2016-05-12 16:57 519 查看
客户端:

<script type="text/javascript">    

    function jsonpCallback(result){     

       alert(result[1].name);     

    }     

</script>  

<script type="text/javascript"src="http://test.abc.com/Jsonp/jsonp.jsp?callback=jsonpCallback"></script>

或者

<script type="text/javascript">     

    $.getJSON("http://test.abc.com/Jsonp/jsonp.jsp?callback=?", function(json){      

        alert(json[0].name);     

    });     

</script>

或者

$.ajax({  
type : "get",  
async:false,  
url : "http://test.abc.com/base/Jsonp/jsonp.jsp",  
dataType : "jsonp",    //数据类型为jsonp  
jsonp: "jsonpCallback",    //服务端用于接收callback调用的function名的参数  
success : function(data){  
$("#showcontent").text("Result:"+data.result)  
},  
error:function(){  
alert('fail');  
}  

}); 

服务端(jsonp.jsp代码):

<%  

     String callback = request.getParameter("callback");  

     out.print(callback+"([ { name:'John',age:'19'},{ name:'joe',age:'20'}] );");  

     out.print(callback);  

%>

=====示例2======

Java代码:

@RequestMapping("/lottery_addr.action")

@ResponseBody

public String lottery_address(String lotteryCode, String callback) throws Exception{
HashMap ret = new HashMap();
ret.put("responseCode", "0");
ret.put("responseMessage", "success");

HashMap result = new HashMap();
result.put("pin", System.currentTimeMillis());
result.put("winner", "true");
ret.put("data", result);

ObjectMapper mapper = new ObjectMapper();
String str = mapper.writeValueAsString(ret);
return callback + "(" + str + ");";

}

js代码:

$.ajax({

     type: "get",

     async: false,

     url: "http://192.168.1.110:8080/lottery_addr.action",

     data: {lotteryCode:'act1'},

     dataType: "jsonp",

     jsonp: "callback", //传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)

     jsonpCallback:"jsonpBack",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据

     success: function(json){

         // 在这里处理业务逻辑即可

     },

     error: function(){

         //alert('fail');

     }

 });
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: