標籤: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的請求是否失敗。
跨域的方法