Java 跨窗口消息传递和表单提交

Java 跨窗口消息传递和表单提交,java,forms,html,jsp,Java,Forms,Html,Jsp,目前我正在做的就是: 内容页面有一个按钮,该页面上还有一个属于另一台服务器的iframe。当按下按钮时,javascript从客户端浏览器获取一些信息。然后使用window.postmessage方法将信息发送到iframe 我在iframe中放置了一个带有文本字段的表单。当侦听器接收到postmessage data event.data时,它将使用document.form.textfieldid.value存储到文本字段中,以便我可以使用document.form.submit将数据发布到

目前我正在做的就是:

内容页面有一个按钮,该页面上还有一个属于另一台服务器的iframe。当按下按钮时,javascript从客户端浏览器获取一些信息。然后使用window.postmessage方法将信息发送到iframe

我在iframe中放置了一个带有文本字段的表单。当侦听器接收到postmessage data event.data时,它将使用document.form.textfieldid.value存储到文本字段中,以便我可以使用document.form.submit将数据发布到我的servlet。然后servlet使用request.getparameter检索数据,执行INSERT查询将数据存储到数据库中

这次处决非常有效

问题是:

我添加了另一个javascript,因此如果再次按下按钮而不重新加载页面,它将获取另一个数据,并且应该再次执行上述过程。window.postmessage成功地接收了数据,但是未执行POST可以通过netbeans的http监视器查看数据。这意味着表格没有提交

总之,表单只有在第一次按下按钮时才提交,除非我重新加载页面,否则它不会再次工作

我使用的是捆绑在NetBeans7中的ApacheTomcat7.0.14

我想知道为什么会这样?有什么误解吗

这是iframe的代码:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>JSP Page</title>
</head>
<body>
<form name="form" action="databaseServlet" method="post">
<input type="text" id ="output" name ="out" />  
</form>
<div id="message"> TEST </div>

<script>

var xmlhttp;          
function listener(event)
{

document.form.output.value = event.data ;
document.form.submit()               
}
if(window.addEventListener)
addEventListener("message", listener, false)
else
attachEvent("onmessage",listener)
</script>

</body
</html>
已解决:


我找到了解决办法。这是我的错。我没有在发帖后设置回复。我刚刚使用servlet中的sendRedirecttheiframe.jsp将表单重定向到其早期状态,它将能够在不重新加载整个页面的情况下重新发布

你试过不同的浏览器吗,哪种?我在Firefox和Chrome上试过。我很有信心,这不是关于浏览器,而是我的编码或任何我不知道的概念。我已经把iframe的代码放在了上面的问题中。