我在 IE9 中看到以下内容
- Javascript 通过 .submit() 提交表单
- 服务器成功返回 302
- IE 在重定向的 URL 上执行 GET
- IE 通过 .submit() 重新提交表单
提交发生在一个通过 setTimeout 递归调用自身的函数中,我认为这可能是罪魁祸首。但从逻辑上讲,我不认为提交可能会发生两次。这是功能:
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();
}