読者です 読者をやめる 読者になる 読者になる

Corredor

ウェブ、プログラミングの勉強メモ。

ローカルで jQuery の Ajax を動作させたいが IE11 で動かない時にこうする

jQuery ポケットリファレンス (POCKET REFERENCE)

jQuery ポケットリファレンス (POCKET REFERENCE)

ローカルに置いてある HTML ファイルから jQuery を使って、load とか get とか getJSON とかしたかったのだけど、どうもローカルファイルからだと XMLHttpRequest が使えないらしく、動作しなかった。

調べてみたところ、IE10 エミュレートで動かすと上手くいったが、Edge で動かしたいよねぇ…。

<!-- IE10 エミュレートさせる -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE10">

んで、調べてみたら、Edge モードでも動作させられる解決方法があった。

以下のコードを jQuery の後に読み込ませておいておけば、ローカルの HTML ファイルから jQuery で Ajax 操作ができた。

$.ajaxSetup({
  xhr: function() {
    if("ActiveXObject" in window) {
      return new ActiveXObject("Microsoft.XMLHTTP");
    }
    else {
      return new XMLHttpRequest();
    }
  }
});