jquery+jsonp跨域

1.使用jquery+jsonp跨域
第一种方法:

$.getJSON('http://www.a.com/user?id=123&callback=?', function(data){
//处理data数据
});

注意:参数callback只是参数名,服务器接口根据callback接收jquery随机生成的回调方法。

第二种方法


    $.ajax({ 
        type: 'GET', 
        url: 'http://127.0.0.1:8080/web/system/qrcode/getQrcodeId?dataType=jsonp&bizType=login', 
       dataType : "jsonp",//数据类型为jsonp  
jsonp: "callback",      
        error: function(XmlHttpRequest,textStatus,errorThrown){ 
             
            }, 
        success: function(msg){      
            
            }   
    });


注意:jsonp:指定服务器端接收的回调函数名,callback的值由jquery随机生成



第三种方法

$.ajax({ 
        type: 'GET', 
        url: 'http://127.0.0.1:8080/web/system/qrcode/getQrcodeId?dataType=jsonp&bizType=login&jsonpQrcode=?', 
dataType : "jsonp",//数据类型为jsonp 
         jsonpCallback: "handelCallbackLogin",    
        error: function(XmlHttpRequest,textStatus,errorThrown){ 
          
            }, 
        success: function(msg){      
            
            }  
    });


注意: jsonpQrcode是服务器端接收回调函数的参数名
       jsonpCallback:"handelCallbackLogin" 表示服务器接口接收到的jsonpQrcode="handelCallbackLogin",这个时候不再是jquery随机生成的回调函数名




服务器端代码:最主要的地方是:
(1)返回给前台的数据需要response输出
        response.getWriter().out.println(jsonpCallback + "(" + JSON.toJSONString(jsonResponse) + ")");

jsonpCallback是服务器端接收回调函数的参数名

(2)回调函数名和  回调数据需要使用()








猜你喜欢

转载自zhaoxiaoxiao.iteye.com/blog/2322257
今日推荐