0

您如何发布表单(在 javascript 中)并使浏览器不等待响应?这可能吗?我想要创建的模式是一种“一劳永逸”的模式。这是执行提交的代码:

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 回答