jsonp 跨域的使用

 js ajax在调用过程中如果请求外部连接,会报错。比如:
XMLHttpRequest cannot load ’'http://*****'  No 'Access-Control-Allow-Origin' header is present on the requested resource
 Origin 'http:/888*****' is therefore not allowed access.    
   出现跨域报错。


 跨域有以下集中表现形式:
1、同一域名,不同端口 a.com/b a.com:8080/a

2、同一域名,不同协议 http:// https://

3、域名和域名对应ip a.com/a 192.168.1.1/a

4、子域名不同 www.a.com wp.a.com

5、不同二级域名 www.a.com/a a.com/a

6、不同域名 a.com b.com



关于jsonp跨域调用有2种方式:


$.ajax({
    type:"GET",  
    url:"http://~~~~~~~~~~~&callback=?",
    dataType:"json",  
    success: function(msg){  
        console.log(msg.total);  
    }
})
1、这种直接type 写json格式, 然后链接后缀参数 callback的参数会自动填充 , 参数部分会在请求的时候自动填充

$.ajax({
    type:"GET",  
    url:"http://~~~~~~~~~~~",  
    dataType:"jsonp",  
    success: function(msg){  
        console.log(msg.total);  
    }
})
2、 这种直接把type 定义成jsonp格式, 然后再请求的时候会直接参数部分后缀 callback=******

关于请求链接返回,要准守jsonp的返回格式:
echo $_GET[‘callback’] . ’(’ . josn_encode($josnData) . ’)’;

猜你喜欢

转载自blog.csdn.net/bushiyao_/article/details/51361758