IE11でXMLHttpRequestを利用する際に注意すること

requestパラメーターをURLエンコードすること

htmlをutf-8の文字エンコーディングに指定していても、サーバーサイドへリクエストする際にはshift-jisの文字コードとして扱われました。

そのため、encodeURIComponent関数を用いてエンコーディングしましょう。

ちなみに、ChromeではencodeURIComponent関数でエンコーディングしなくとも問題なく処理されます。

responseTypeプロパティでjsonを指定しない

IEでは未対応です。そのため、responseTypeプロパティを用いず、レスポンスボディーをJSON.paserメソッドを用いてJSONオブジェクト化しましょう。