zoukankan      html  css  js  c++  java
  • 跨域的方法

      跨域会存在安全问题,例如,黑客可以在本地域通过远程域获得相应的权限,然后利用得到的权限运行脚本发起攻击。通过跨域资源共享(CORS Cross-Origin Resource Sharing)可以预防某些恶意的行为。

      1、IE对CORS的实现

      通过引用XDR对象。

    var xdr = new XDomainRequest;
    xdr.onload = function(){
        alert("xdr.responseText");  
    };
    xdr.onerror = function(){
      alert("an error occurred");      // 处理请求失败的情况
    };
    xdr.open("get","绝对地址");          // 这里传入的只有两个参数
    xdr.send(null);
     

      2、其他浏览器,通过XHR对象实现CORS

    var xhr = createXHR();
    xhr.onreadystatuschange = function(){
        if( xhr.readyState == 4 ){
            if( (xhr.status>=200 && xhr.status < 300) || xhr.status == 304 ){
                 alert(xhr.responseText);
            }else{
                 alert("Request was fail:" + xhr.status);
            }      
        }  
    };
    xhr.open("get","绝对地址",true);    // true表示异步,这里传入的是三个参数
    xhr.send(null);            

      3、图像Ping

      这种跨域是通过<img>标签实现的,这是一种浏览器与服务器之间单向的通信方式,而且,只能发送GET请求,无法访问服务器的响应文本。

      4、JSONP(json with padding)技术,由两部分组成“回调函数”和“数据(json数据)”。是应用json的一种新方法。通过函数包含json的方式,使用动态<script>元素中的src属性指定一个跨域URL。

      优点是可以直接访问响应文本,支持在浏览器与服务器之间双向通信。但是,如果其他域是不安全的,将会带来安全隐患。而且,这样的方式不好确定jsonp的请求是否失败。

  • 相关阅读:
    cmd 进入不同的驱动盘及上下级目录
    子网/ip/子网掩码
    虚拟化技术与"云"
    OSI 7层模型
    第一天的CI笔记
    在本地Apache服务器配置虚拟主机站点
    phpmailer 发送邮件
    mysql 中执行的 sql 注意字段之间的反向引号和单引号
    手动部署LNMT(Nginx+Tomcat)并实现Nginx反向代理Tomcat
    JS 创建元素的三种方法
  • 原文地址:https://www.cnblogs.com/tracylyx/p/CORS.html
Copyright © 2011-2022 走看看