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) . ’)’;