IE9で次のように表示されます
- Javascript は .submit() 経由でフォームを送信します
- サーバーは成功時に 302 を返します
- IE はリダイレクトされた URL で GET を実行します
- IE は .submit() 経由でフォームを再送信します
送信は、setTimeout を介して再帰的に自分自身を呼び出す関数内で発生します。これが原因である可能性があります。しかし、論理的には、送信が 2 回発生する可能性はありません。関数は次のとおりです。
function callback() {
"use strict";
var poll_timeout, // setting a var in case we need to kill the timeout mid count
poll_counter = 0, // start a counter
max_polls = 10; // set a max count
function doPoll() {
if (poll_counter < max_polls) { // make sure we're not above the count
poll_counter++; // increment the counter
$.post("/someUrl", function (success) {
// ajax it
if (success) {
$("form#checkout").off('submit', Store.cancel_submit)
$('form#checkout').submit();
} else {
// do it again
poll_timeout = setTimeout(doPoll,10000);
}
});
}
}
doPoll();
}