Forms 将带有https://操作的表单发布到隐藏iframe

Forms 将带有https://操作的表单发布到隐藏iframe,forms,iframe,cross-domain,Forms,Iframe,Cross Domain,我在一页上有以下内容: <iframe width="1" height="1" name="hidden-iframe"> <form id="myform" method="POST" action="https://mysite.com/process-form-data.php" target="hidden-iframe"> <input name="data" /> <input type="submit" value="Submit" /&

我在一页上有以下内容:

<iframe width="1" height="1" name="hidden-iframe">
<form id="myform" method="POST" action="https://mysite.com/process-form-data.php" target="hidden-iframe">
<input name="data" />
<input type="submit" value="Submit" />
</form>
<script type="text/javascript">
    $('#myform').submit(function(){
        $('#myform').submit();
        setTimeout("location.reload(true);",5000);
        return false;
    });
</script>

$('#myform')。提交(函数(){
$('#myform')。提交();
setTimeout(“location.reload(true);”,5000);
返回false;
});
我希望表单被发布到隐藏的iframe,等待5秒钟(给表单数据足够的时间发送),然后刷新页面

如果表单操作是http,那么这个过程非常有效

但是,当表单操作为https时,当用户点击Submit时,表单数据将由浏览器发送和加载。表单数据不会发布到隐藏的iframe,没有5秒超时,并且原始页面不会刷新


你知道如何实现既定目标吗?我应该补充一点,表单的操作与页面本身位于不同的域中。显然,这里肯定存在某种跨域安全问题。有没有更好的办法?我愿意接受任何建议。

是的,这是一个跨域安全问题。我相信即使它们在同一个域上,也会有同样的问题,但一个是SSL(https),另一个不是(http)

有可能建立一个服务来接收你的帖子吗?然后,您可以发布一篇AJAX文章,并在站点上使用JavaScript对响应进行操作。这也将比“等待5秒”更加健壮


希望这有帮助,是一个选择。否则,剩下的选项是直接重定向到新域的表单(没有iframe,整个新页面),然后重定向回站点。笨重,但对最终用户诚实。(real,window.open())弹出窗口可能会使其不那么刺耳。

所有浏览器都会出现这种情况吗?我在firefox中也遇到了同样的问题,那就是中止post请求。