IEでJqueryのAjaxを使うと、「XMLHttpRequest: ネットワーク エラー 0x2f78, エラー 00002f78 のため操作を完了できませんでした。」


問題

Chromeで問題なく動いている以下のコードが、IEでは動かない。

condition = "&condition=" + $('#condition').val();
$.ajax({
  url: "/xxx",
  type: "get",
  contentType:"application/json; charset=UTF-8",
  data:condition
}).done(function (data, status, jqXHR) {

IEのデベロッパツールに表示されたエラー

XMLHttpRequest: ネットワーク エラー 0x2f78, エラー 00002f78 のため操作を完了できませんでした。
  • $('#condition').val()が日本語の時にだけ発生
  • 入力したああああがqueryパラメータではã????ã????ã????ã????となる

解決方法

以下で直る。

condition = "&condition=" + encodeURI($('#conditionText').val());

Chromeでは自動でURIエンコードするが、IEではしてくれない。

参考

所感

IEだとデフォルト引数も使えないし、いろいろとChromeと差異があってハマる。