跨域

同源策略

所有的浏览器都遵守同源策略,即JavaScript或Cookie只能访问同域下的内容


 

 

怎么算跨域呢,先看下一个域名地址的组成:

http://    www   .     abc.com   :    8080  /     scripts/jquery.js

 协议    子域名    主域名    端口号      请求资源地址

当协议、子域名、主域名、端口号任意一个不同时,都算作不同域

不同域之间互相请求资源,就算作“跨域”

用途:比如一个网站比较大,在郑州和上海分别设了两个服务器,用户操作页面就需要跨域了


 

JSONP

  • 用于get请求传输少量数据,不支持post请求
$("#getJsonpByJquery").click(function () {
    $.ajax({
        type:"GET",
        url: 'http://localhost:2701/home/somejsonp',
        dataType: "jsonp",
        jsonp: "callback",
        success: function (data) {
            console.log(data)
        }
    })
})
$jsonp = $_GET["callback"];
$jsonp."(json对象)";

 


W3C的CORS规范

  •  CORS的原理:
     CORS定义一种跨域访问的机制,可以让AJAX实现跨域访问。CORS 允许一个域上的网络应用向另一个域提交跨域 AJAX 请求。实现此功能非常简单,只需由服务器发送一个响应标头即可。
 
  •  在服务端添加
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Methods:POST,GET');

 

 

 

 

posted @ 2016-04-08 11:12  vanOne  阅读(495)  评论(0编辑  收藏  举报