0

フォームを (javascript で) 投稿し、ブラウザが応答を待たないようにするにはどうすればよいですか? これはまったく可能ですか?私が作成したいパターンは、一種の「Fire and Forget」パターンです。送信を実行するコードは次のとおりです。

var iframe = document.createElement("iframe");
var unikString = "UNIQUE STRING";
document.body.appendChild(iframe);
iframe.style.display = "none";
iframe.contentWindow.name = unikString;

var form = document.createElement("form");
form.target = unikString;
form.action = "[THEURL]";
form.method = "POST";

document.body.appendChild((function(){
    document.createElement("input");
    input.type = "hidden";
    input.name = "NAME";
    input.value = "VALUE";
    return input;
})());

setTimeout(function ()
{
    form.submit();
}, 0);

(ドメイン外のエンドポイントに投稿する必要があるため、フォームの投稿はこの方法で行われます。したがって、CORSの問題を克服する必要があります。)

4

1 に答える 1

0

スクリプトを受信するサーバーを修正でき、PHP を使用しignore user abortている場合は、ユーザーが iframe またはウィンドウを閉じてもフォームの投稿を実行できるようにすることができます。これに関する唯一の問題は、応答を無視しているため、これが正しく機能したかどうかがわからない (そしてまったくわからない) ことです。

http://php.net/manual/en/function.ignore-user-abort.php

そうしないと、投稿しているフォームは無視されます。できることは、フォームの応答に対する応答を作成することだけです。それ以外の場合は、いつでも無視できます。

于 2014-10-15T08:07:38.460 に答える