1

ajaxの「ファイアアンドフォーゲット」呼び出しを実行しようとすると、Firefox15.0.1で問題が発生します。基本的に、ユーザーがページを閉じたりリダイレクトしたりするときに、ajax呼び出しを実行したいと思います。ChromeとIEでは、Charlesでリクエストを表示すると、これは正常に機能しているように見えます。ただし、FireFoxでは、ajax呼び出しが行われているのがわかりません。

jQuery(window).on('beforeunload',function(){
     jQuery.ajax({url:'some page', type: 'GET', dataType: 'script'});
});

console.logまたはアラートを含めると、イベントが機能することを知っています。アンロードする前にこのajax呼び出しを実行するのに十分な時間がないようです。誰かがこれについて何か考えを持っているか、回避策がありますか?

4

1 に答える 1

0

onbeforeunloadイベントから呼び出されるajax呼び出しを実行する別のhtmlページを作成できます。

その新しいページはアクションを実行し、完了するとすぐに閉じます。

別の方法は、以下に示すように同期ajax呼び出しを使用することです。

jQuery.ajax({
     url:    'http://abcexample.com/getInfo',
     success: function(result) {
                  if(result.isOk == false)
                      alert(result.message);
              },
     async:   false
});

ただし、同期呼び出しは、呼び出しが完了するのを待ってから先に進みます。実行してajax呼び出しの機能を忘れたい場合は、最初のメソッドが最適です。

于 2012-12-02T06:32:57.977 に答える