什么是跨域?
地址不同,不能相互的去访问资源。
http:// www.bailiban.com : 8888 /img/01.jpg?name=jack 协议 子域名 主域名 端口号 请求的资源路径 协议,子域名,主域名,端口号,只要有一个不同就是跨域,资源就不能通过ajax进行访问
解决跨域的三种简单方法:
1.代理服务器
用一个新的服务器把需要使用的代码都放在一起就可以正常访问。
2.设置请求头
在PHP页面中添加如下代码:
header("Access-Control-Allow-Origin: *"); //域名 header("Access-Control-Allow-Method: POST,GET"); //传递方式
3.jsonp
3.1什么是jsonp:
jsonp是一种数据传输的方式或者说非强制性的协议
3.2jsonp和ajax的实质:
ajax的核心是通过xmlHttpRequest获取非本页内容
jsonp的核心是动态添加script标签调用服务器提供的js脚本
3.3jsonp使用注意:
只能传递 通过GET 方式传递的数据
3.4jsonp使用代码:
js版:
function addScript(src){
var script = document.createElement("script");
script.src = src;
document.body.appendChild(script);
}
jQuery版:
$.ajax({
type: "GET",
url: "http://192.168.9.154:3000/jsonp",
dataType: "jsonp",
success: function(data){
console.log(data)
}
});
|