zoukankan      html  css  js  c++  java
  • 跨域通信

    1. 不考虑低版本浏览情况下,还是使用XMLHttpRequest对象,IE下使用XDomainRequest 

    咱们一般都会用ajax 做前后台交互,也就是我们常用的XHRHttpRequest2对象,那么这个倒底是否支持跨域通信呢?

    我们接下来看一下( IE5,6我们先忽略 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");  )

    在标准浏览器下,XMLHttpRequest对象已经是升级版本,支持了更多的特性,可以跨域了
    但是,如果想实现跨域请求,还需要后端的相关配合才可以,

    后台需要设置头部允许跨域  header('Access-Control-Allow-Origin:http://www.a.com'); //这是允许访问该资源的域

     1 var xhr = new XMLHttpRequest();
     2         xhr.onreadystatechange = function() {
     3             if (xhr.readyState == 4) {
     4                 if (xhr.status == 200) {
     5                     alert(xhr.responseText);
     6                 }
     7             }
     8         }
     9         xhr.open('get', 'elseDomain_url', true);
    10         xhr.send();

    XMLHttpRequest : 增加很多功能,他也不推荐使用onreadystatechange这个事件来监听,推荐使用load ,error, 详见  https://www.w3.org/TR/2012/WD-XMLHttpRequest-20120117/#event-xhr-load

    XDomainRequest : IE如果想实现跨域请求,IE下使用 XDomainRequest 对象,如下

    1 var oXDomainRequest = new XDomainRequest();
    2         oXDomainRequest.onload = function() {
    3             alert(this.responseText);
    4         }
    5         oXDomainRequest.open('get', 'elseDomain_url', true);
    6         oXDomainRequest.send();

     2. JSONP

    3. Hash

    4.PostMessage

    5.WebSocket

    6. CORS

  • 相关阅读:
    MySQL之force index和ignore index
    Linux中CPU性能分析工具perf简单使用(亲测可用)
    Linux之SeLinux
    Docker基础
    yum常用命令
    MySQL总结
    MySQL字符集详解
    MySQL5.6的4个自带库详解
    Python操作MySQL
    MySQL索引原理
  • 原文地址:https://www.cnblogs.com/chenyajie/p/8930016.html
Copyright © 2011-2022 走看看