公司有一個專案,必須做到跨網域(CROS)的功能,一想到CROS,我就直覺想到使用XmlHttpRequest
公司有一個專案,必須做到跨網域(CROS)的功能,一想到CROS,我就直覺想到使用XmlHttpRequest,在Chrome,Firefox,IE11都沒問題,寫了一個範例程式,交給新人照抄,原本以為可以很開心的交給新人去Coding,結果去客戶端測試時,PM丟了一個重量級炸彈給我:
客戶端幾乎都是用IE8,IE8,IE8.....
而IE8跟本就沒有XmlHttpRequest可以用啊~~~~~~~~~~~~~~~
在Google大神的幫助之下,終於找到元兇了,原來IE8要用XDomainRequest...
這是啥鬼啊...
話不多說,直接給範例程式
var url='http://myurl';
if(window.XDomainRequest){ //Only IE8 or IE 9
var xdr=new XDomainRequest();
xdr.open('GET',url);
xdr.onload(function(){
alert('xdr success');
});
}else{
var xhr=new XMLHttpRequest();
xhr.open('GET',url,false); //加false代表不做非同步
xhr.send();
xhr.onreadystatechange(function(){
if(xhr.status==200&&xhr.readyState==4){
alert('xhr success');
}
});
}