我強(qiáng)烈建議您不要花任何時(shí)間在XDomainRequest上,因?yàn)樗且粋€(gè)非常糟糕的實(shí)現(xiàn),有很多限制。它基本上只對(duì)非SSL服務(wù)器的GET請(qǐng)求有效,因此您最好使用jsonp或其他任何方法。我正在使用CORS調(diào)用跨域API,但是Internet Explorer出現(xiàn)了問題。通過該XDomainRequest對(duì)象,應(yīng)該可以在IE8和IE9中實(shí)現(xiàn)CORS ,但是我無(wú)法正常工作。JQuery 拒絕為XDomainRequest提供本機(jī)支持,但是建議使用幾個(gè)jQuery插件來(lái)添加此支持。本主題建議了兩個(gè)這樣的插件:jQuery.XDomainRequest.js和xdr.js,據(jù)報(bào)道它們可以工作。Afaik,插件應(yīng)自動(dòng)覆蓋的行為jQuery.ajax。我在這里找到了另一個(gè)插件。我分別放了一些演示頁(yè)面,分別帶有插件jQuery.XDomainRequest和xdr和jquery.ie.cors,它們對(duì)啟用了CORS的服務(wù)器執(zhí)行ajax請(qǐng)求。這些頁(yè)面可在Chrome和Firefox中運(yùn)行,但是IE8 / 9會(huì)立即引發(fā)權(quán)限被拒絕錯(cuò)誤(甚至在發(fā)出請(qǐng)求之前)。這個(gè)MSDN帖子建議添加另一個(gè)處理程序,xhr.onprogress = function() {};但是我嘗試了這個(gè)操作,但它也不起作用。任何提示我在做什么錯(cuò)?我現(xiàn)在也已經(jīng)使用MS虛擬服務(wù)器對(duì)IE8進(jìn)行了測(cè)試,但是它有完全相同的問題。編輯:確定,所以我發(fā)現(xiàn)問題的一部分是我在HTTPS上使用POST。顯然XDomainRequest不允許通過HTTPS進(jìn)行CORS。我可以切換到HTTP,但我確實(shí)需要POST。Edit2:有關(guān)該故事的結(jié)尾,請(qǐng)參見github上的此問題。事實(shí)證明,使用HTTP POST時(shí),xDomainRequest只能將請(qǐng)求正文(參數(shù))編碼為text/plain。這幾乎使它一文不值,因?yàn)槊總€(gè)人都使用application/x-www-form-urlencoded或multipart/form-data。IE8 / 9中帶有jQuery和XDomainRequest的CORS
IE8 / 9中帶有jQuery和XDomainRequest的CORS
慕工程0101907
2019-12-16 11:11:10