最近遇到的几个小东西

关于window.location

window.location.href  获取整个url

window.location.pathname 获取文件目录

window.location.hostname  获取域名

 

每一次打开新的页面,浏览器都会记录页面历史,回退的时候常用back()方法

history.back()

如果想在当前页面的基础上打开一个页面,这样不会有浏览记录的存在

可以这么干  window.location.replace()

 

例如:window.location.replace("http://www.baidu.com");

 

 

关于跨域:

浏览器为了安全,搞了个同源策略,(协议、域名、端口),有一个不一样,不好意思,就不允许请求的发生!

大神们想出了多种方法:

1,如果是内部的服务器的话,让后设置下可以跨域,简单省事!

response.setHeader("Access-Control-Allow-Origin", "*");  * 就代表所有,这里可以根据需要自己设置

2,jsonp,我们请求的js,没有不允许这一说,随便搞,

,利用js的这一特性,在html文件中动态插入script标签,引用这个js,callback函数返回json字符串

function addScript(){
    var script = document.createElement("script");
    script.type = "text/javascript" ;
    script.src = "http://localhost:8080/cross-domain/server/jsonp.jsp?callback=showName&data=1" ;
    document.body.appendChild(script);
}

总而言之就是生成数据的js数据文件,引用一下,就可以拿到数据了

但是请求成功与否不好判定,还有就是请求地址可见,不安全

3,代理proxy

这个用的就比较多了,

种方式首先将请求发送给后台服务器,通过服务器来发送请求,然后将请求的结果传递给前端。

var url = "http://localhost:8080/cross-domain/server/proxy.jsp"
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET",url,true);
xmlhttp.onreadystatechange = function (){
    if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
        console.log(xmlhttp.responseText);
    }
}
xmlhttp.send();

4.window.name + iframe

window.name可以跨页面使用

拷贝别人的代码:

<script type="text/javascript">
    var state = 0, 
    iframe = document.createElement('iframe'),
    loadfn = function() {
        if (state === 1) {
            var data = iframe.contentWindow.name;    // 读取数据
            alert(data);    //弹出'I was there!'
        } else if (state === 0) {
            state = 1;
            iframe.contentWindow.location = "http://a.com/proxy.html";    // 设置的代理空文件
        }  
    };
   iframe.src = 'http://b.com/data.html';//数据文件 if (iframe.attachEvent) { //页面加载js时,此时iframe还没有插入到页面里,执行的代码2,指向空文件 iframe.attachEvent('onload', loadfn); //1 } else { iframe.onload = loadfn; //2 } document.body.appendChild(iframe); //iframe插入页面,监听事件起作用,执行代码2,获取数据 </script>


详细信息转载自这里:
http://www.cnblogs.com/rainman/archive/2011/02/21/1960044.html

 

转载于:https://www.cnblogs.com/gaoxt/p/7606947.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值