前提・実現したいこと
ページを離脱したタイミングでAjax通信でDBに離脱した時間を格納しようとしています。
Choromeでunloadを利用し、Ajax通信をしているのですが動作しません。
Choromeの仕様を確認するとbeforeunload、unload、pagehide、およびvisibilitychangeで同期XHRを許可しないようになったとのことですが解決策ありますでしょうか?
参考URL
https://www.chromestatus.com/feature/4664843055398912
https://jpcloud.net/q/ghychxgk
期間を1か月前までに絞り上記記事を見つけたのですがasync: falseにしても動作変わりませんでした。
発生している問題・エラーメッセージ
"NetworkError: Failed to execute 'send' on 'XMLHttpRequest': Failed to load '': Synchronous XHR in page dismissal. See https://www.chromestatus.com/feature/4664843055398912 for more details."
該当のソースコード
jQuery
1$(window).on("beforeunload", function() { 2 pageout(); 3 return "test"; 4}); 5 6function pageout(){ 7 var data = { 8 "data": "hoge", 9 }; 10 11 $.ajax({ 12 type: "POST", 13 url: "url", 14 data: data, 15 async: false, 16 }).done(function(result){ 17 // 成功時処理 18 }).fail(function(result){ 19 // 失敗時処理 20 }); 21};
試したこと
POST通信をGET通信に変更
beforeunloadをunloadに変更
回答2件
あなたの回答
tips
プレビュー