什么是跨域?
地址不同,不能相互的去访问资源。
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) } });