跨域HTTP请求

来源:互联网 发布:我所理解的生活 知乎 编辑:程序博客网 时间:2024/06/13 22:38

HTML部分

<a href="http://img5.imgtn.bdimg.com/it/u=1478257864,2882073929&fm=21&gp=0.jpg" >测试1</a><a href="http://apis.baidu.com/apistore/weatherservice/citylist" >测试2</a><a href="http://apis.baidu.com/apistore/weatherservice/citylist" >测试3</a><a href="http://apis.baidu.com/apistore/weatherservice/citylist" >测试4</a>

JS代码部分

//跨域HTTP请求function getScriptByCors(){   var supportsCORS = (new XMLHttpRequest()).withCredentials !== undefined;   //遍历页面上的所有连接   var links = document.getElementsByTagName('a');   for (var i = 0; i < links.length; i++) {      var link = links[i];      if(!link.href) continue;//跳过没有超级链接的描点      if(link.title) continue;//跳过已经有了工具提示的链接      //如果这是一个跨域的链接      if(link.host !== location.host || link.protocol !== location.protocol){             link.title = '站外链接';             if(!supportsCORS){               continue; //如果不支持cors 那么就直接退出             }      }      if(link.addEventListener){        //注册监听事件        link.addEventListener('mouseover',moseMoveHandler,false);//不需要进行捕捉事件      }else{        //IE 事件模型        link.attachEvent('onmouseover',moseMoveHandler);      }   }   function moseMoveHandler(event){    event = event || window.event;    var target = event.target || event.srcElement;    var url = target.href;    var xhr = new XMLHttpRequest();    xhr.open('HEAD',url);    xhr.onreadystatechange = function(){        if(xhr.readyState !== 4) return;        if(xhr.status === 200){            var type = xhr.getResponseHeader('Content-Type');            var size = xhr.getResponseHeader('Content-Length');            var date = xhr.getResponseHeader('Last-Modified');            alert(type);            //在工具提示中显示详细信息            link.title = '类型:'+type+'\n'+'大小:'+size+'\n'+'时间:'+date+'\n';        }else{          //请求失败          if(!link.title){             link.title = 'can not fetch details :\n'+xhr.status+" "+xhr.statusText;          }        }    };    xhr.send(null);    //移除处理程序    if(link.removeEventListener){       link.removeEventListener('mouseover',moseMoveHandler,false);    }else{      //IE事件模型      link.detachEvent('onmouseover',moseMoveHandler);    }   }}
0 0
原创粉丝点击