【发布时间】:2011-03-26 23:00:12
【问题描述】:
我在页面上有以下内容:
<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>
我希望将表单发布到隐藏的 iframe,等待 5 秒(让表单数据有足够的时间发送),然后刷新页面。
如果表单操作是 http,则此过程非常有效。
然而,当表单动作是https时,当用户点击提交时,表单数据被发送,https://mysite.com/process-form-data.php被浏览器加载。表单数据不会被发布到隐藏的 iframe,没有 5 秒超时,并且原始页面没有刷新。
知道如何实现既定目标吗?我应该补充一点,表单的操作与页面本身位于不同的域上。显然,这里肯定发生了某种跨域安全问题。有没有更好的方法来做到这一点?我愿意接受任何建议。
【问题讨论】:
-
所有浏览器都会出现这种情况吗?我在 Firefox 中遇到了同样的问题,它正在中止发布请求。
标签: forms iframe cross-domain