簡體   English   中英

如何確定使用XMLHttpRequest還是XDomainRequest?

[英]How to determine whether to use XMLHttpRequest or XDomainRequest?

取決於瀏覽器,我想確定應使用哪個對象。 對於IE <10,對於其余的XMLHttpRequest ,應為XDomainRequest

if(window.XDomainRequest) //basically 'if IE'
    //XDomainRequest
else
    //XMLHttpRequest

由於IE10具有跨域資源共享支持,因此最好將XMLHttpRequest對象與它一起使用。 該代碼將無法正常工作(我想IE10仍然支持XDomainRequest ,如果我弄錯了,請更正我,我無法對其進行測試)。 直接檢查瀏覽器不是確定事物的最安全方法。 所以我的問題是,確定應該使用哪個對象的最佳方法是什么? 我正在尋找純JS(非jQuery)解決方案。

這是我的操作方式,但這並不好。

var useXDR = window.XDomainRequest && (window.XMLHttpRequest && new XMLHttpRequest().responseType === undefined);

之所以起作用,是因為IE10對於新創建的XHR具有空字符串的responseType,但是在不支持XHR2的IE版本中,它是未定義的。

如果您確實走這條路,請記住,XDR的調試要比XHR差得多-當出現問題時,它會為您提供較少的信息,並且即使在舊的XmlHttpRequest實現上某些功能也無法在XDR上運行。

即使您的瀏覽器不支持XHR2,也不支持XDR,當您從加載頁面的主機/端口請求URL時,仍然需要使用XHR。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM