ローカルで jQuery の Ajax を動作させたいが IE11 で動かない時にこうする
ローカルに置いてある 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();
}
}
});