如何在不等待回复的情况下发布表格

问题描述 投票:0回答:1

您如何发布表单(使用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问题。)

javascript form-submit fire-and-forget
1个回答
0
投票

如果可以修改接收脚本的服务器,并且使用PHP,则可以设置ignore user abort,即使用户关闭iframe或窗口,也可以执行表单发布。唯一的问题是,当您忽略响应时,您不知道(并且永远不会)它是否正确工作。

© www.soinside.com 2019 - 2024. All rights reserved.