跨域的方法

來源:互聯網
上載者:User

標籤:style   blog   color   io   os   使用   ar   資料   div   

  跨域會存在安全問題,例如,駭客可以在本地區通過遠端網域獲得相應的許可權,然後利用得到的許可權運行指令碼發起攻擊。通過跨域資源共用(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的請求是否失敗。

跨域的方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.