画面離脱時にAPIに確実にリクエストを送りたい。
APIリクエストを送る方法
調査連絡
やりたいこと
- ブラウザ:chrome イベント:unload, beforeunload
- HTTPメソッド: DELETE
- その他:認証情報をreauestHeaderに含める必要あり。
試したこと
普通に非同期でリクエスト送る
- 画面更新のタイミングによっては、API callが間に合わないのでNG
XML syncで同期的にリクエスト送る
- Chrome80はunload, beforeunload時の同期通信を許可してないのでNG
- Chrome80からunload時の sync XHR が許可されなくなる問題
fetch keepaliveでリクエスト送る ->
- Preflight Requestにkeepalive対応していないためNG。
- POSTかつkeepaliveではPreflight Request送らず本通信することはできるが、
- 認証情報含めるためにrequestHeaderの編集してしまうと、
- 結局Preflight Request飛んでしまう。
sendBeacon()を使う
- requestHeaderがカスタムができず、
- 認証情報が送れないのでNG。