如何发布表单(使用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问题。)
答案 0 :(得分:0)
如果接收脚本的服务器可以修改并且他们使用PHP,他们可以设置ignore user abort
,即使用户关闭iframe或窗口,也可以执行表单发布。唯一的问题是你不会(并且从不)知道这是否正常,因为你忽略了响应。
http://php.net/manual/en/function.ignore-user-abort.php
否则,您发布的表单将被忽略。您唯一能做的就是创建对表单响应的响应。否则你总是可以忽略它。