気まぐれメモランダム / でたらめフィードバック

Microsoft Edge Legacyのfetch API実装は2018年10月の時点では問題あり

公開: / 最終更新日:

2022-10-17(Mon)追記: 2018 年公開の本エントリの指摘対象はいわゆる Edge Legacy で Chromium ベースの 2022 年現在の Edge にはあてはまらないため、タイトルを「Microsoft Edge の fetch API 実装は現在のところ問題あり」から変更しました。


ここのところ業務ではしばらく Single Page Application(SPA)と Web API で構成された Web アプリケーションを開発しています。担当は主に SPA 側。最近は SPA も Internet Explorer のようなレガシーブラウザを相手にしなければ特に課題となるようなことはありません……とは残念ながらいかないのがつらいところ。問題になりがちなのはまたしてもマイクロソフト謹製のモダン(なはずの)ブラウザ、Edge です。

直近でぶつかったのはfetch APIの異常挙動。認証が必要な Web アプリケーションでは認証状態をクッキーで管理し、API は未認証のとき HTTP ステータス 401(Unauthorized)を返すという実装がAzure App Service での認証および承認をはじめとして一般的ですが、Edge の現在の実装では 401 受信後の要求送信でクッキーが送信されません。これは認証を有効にした Azure App Service とMicrosoft Graph APIを連携させるような、マイクロソフトとしても当然想定しているはずのケースで問題が生じることがあります。Graph API からなんらかの理由で 401 が返されると Azure App Service 側の認証も無効となってしまうのです。

この件、いちおう問題としては認識されているようなのですが、現在のところ対応の動きは見られないようです。

Edge の fetch API 実装は他にも UNICODE の応答の取りあつかいで問題が報告されています。

修正されたという報告もありますが、リリースされたかどうかはよくわかりません。うーむ。

このように Edge の fetch API 実装は現時点では安定性に欠ける感は否めません。クロスブラウザでネットワークアクセスを行う際は、fetch API にこだわりがあるのであれば(Edge 対象のみでよいので)whatwg-fetchの利用を、特にこだわりがなければaxiosの利用をおすすめします。

2018-10-17(Wed)追記: 最新版の Edge で POST メソッドが機能しないという情報を見つけました。

Fetch Api post not working in latest version of edge

八月の報告でいまのところ動きなし。しばらくは Edge の fetch API は利用を避けるしかなさそうです。

関連コンテンツ

Pick up work

最近のエントリ

アーカイブ

ブログ情報