IE互換表示の微妙さとXMLHttpRequestの罠
5633 ワード
やりたいこと
- HTTPヘッダをjsで取得したい
前提
- IE11を使うが、互換表示を強制的にかけられるのでIE5相当のjsしか使えないハズ
- ならばXMLHttpRequestも無理か…と思ってたら微妙に使えた
結論
- 互換表示でもXMLHttpRequestは叩ける。本来IE5にはないはずなんだが。
- String.trim()はIE5にはないって言ってくる。
- addEventListenerはIEにはないらしい。
この一貫性のなさ!!納得できねぇ~!
AddEventListenerのページに、IEでのイベントの拾い方書いといてもらえたらなぁ
https://developer.mozilla.org/ja/docs/Web/API/XMLHttpRequest/loadend_event
ここ見ないとわからんかった
https://www.javadrive.jp/ajax/http/index5.html
実装例
ActiveX版。本来これしか動いたらあかんと思うのだが
// ActiveX読み込み
var httpReq = new ActiveXObject('Msxml2.XMLHTTP.6.0');
httpReq.onreadystatechange = cons;
httpReq.open('get', location.href, true);
httpReq.send(null);
function cons(e){
if((httpReq.readyState == 4) && (httpReq.status == 200)){
console.log(httpReq.getAllResponseHeaders());
}
}
なおActiveXObjectのバージョンはどっちの指定でもいけた
ActiveXObject('Msxml2.XMLHTTP.6.0');
ActiveXObject('Microsoft.XMLHTTP');
なんとXMLHttpRequestも叩ける
var httpReq = new XMLHttpRequest();
// でもaddEventListenerはない
httpReq.onreadystatechange = cons;
httpReq.open('get', location.href, true);
httpReq.send(null);
function cons(e){
if((httpReq.readyState == 4) && (httpReq.status == 200)){
console.log(httpReq.getAllResponseHeaders());
}
}
Author And Source
この問題について(IE互換表示の微妙さとXMLHttpRequestの罠), 我々は、より多くの情報をここで見つけました https://qiita.com/aoi_erimiya/items/6b7e076be6c588ba3bab著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .