js 跨域总结

1.window.domain

强制设置相关页面 window.domain相同

a.html 

document.domain = 'a.com';

b.html

document.domain = 'a.com';


2.window.name  同一窗口,动态改变链接 window.name 是不变的,最多保留2M数据

a.html

window.name="aaaaa";

window.location.href="b.html";

b.html

alert(window.name);  //aaaaa


3.xhr

“XHR2” 全称 “XMLHttpRequest Level2” 是HTML5提供的方法,对跨域访问提供了很好的支持,并且还有一些新的功能。

* IE10以下的版本都不支持

* 只需要在服务器端头部加上下面两句代码:

header( "Access-Control-Allow-Origin:*" );

header( "Access-Control-Allow-Methods:POST,GET" );

4.jsonp

a.html

$.ajax(
    {
        type:'get',
        url : 'http://www.youxiaju.com/validate.php?loginuser=lee&loginpass=123456',
        dataType : 'jsonp',  
        jsonp:"jsoncallback", //回调方法
        success  : function(data) {
            alert("用户名:"+ data.user +" 密码:"+ data.pass);
        },
        error : function() {
            alert('fail');
        }
    }
);

function jsoncallback(data){

//dosomesing

}


5 postMessage

a.html

window.onload = function() {
    var ifr = document.getElementById('ifr');
    var targetOrigin = 'http://b.com';  // 若写成'http://b.com/c/proxy.html'效果一样
                                        // 若写成'http://c.com'就不会执行postMessage了
    ifr.contentWindow.postMessage('I was there!', targetOrigin);
};

b.html

window.addEventListener('message', function(event){
        // 通过origin属性判断消息来源地址
        if (event.origin == 'http://a.com') {
            alert(event.data);    // 弹出"I was there!"
            alert(event.source);  // 对a.com、index.html中window对象的引用
                                  // 但由于同源策略,这里event.source不可以访问window对象
        }
    }, false);

6.web sockets


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值