0

ブックマークレットを使用して iframe を別の Web サイトに挿入し、ページ上のフォームが送信されたときにサーバーにデータを送信しようとしています。残念ながら、ブラウザがナビゲーションの一部としてすべての接続をドロップする前に、iframe 内の AJAX リクエストが常に完了するとは限りません。onsubmit 中にサーバーにデータを確実に送り返すにはどうすればよいですか?

私が試みた:

  • onbeforeunload - フォームの onsubmit イベントの後に起動しない
  • onbeforeunload は、アクティブな間、バックグラウンドの JavaScript イベントを防止するようです
  • AJAX リクエストを同期化する - おそらくアンロード中にリクエストが開始されるため、役に立ちませんでした
  • onunload - リクエスト後に起動しますが、AJAX のナビゲーションを遅くする権限はないようです

私はしようとすることを心配しています:

  • 送信時に JavaScript が実行される可能性があるため、フォームの送信を中断します。
  • 未知のリスクとスケジュール超過の可能性があるため、ブラウザー拡張機能を作成する
  • 親からのリクエストを直接実行する - リクエストは JQuery の上で実行される社内ライブラリの一部であり、それをハッキングすることは脆弱です

すべての場合において、私が対象としているブラウザは Google Chrome (最新リリース) です。

4

1 に答える 1

0

結局、AJAXリクエストを使用する代わりに、ポップアンダーウィンドウを生成し、GETパラメーターからデータをプルしました。ブラウザへの応答は、先頭に.を含むスクリプトタグが付いたHTMLページですwindow.close()。これは当分の間機能しているようです。

于 2012-06-13T20:53:01.993 に答える