将值提交到另一个页面 iframe 表单
Posted
技术标签:
【中文标题】将值提交到另一个页面 iframe 表单【英文标题】:Submit value to another page iframe form 【发布时间】:2014-08-29 10:33:36 【问题描述】:我想从 iframe 向另一个页面表单提交值,如下所示。
<input form="form1" type="search><input form="form1" type="submit">
<iframe src="anotherdomain">
<form action="foo.php" method="post" id="form1"></form>
</iframe>
这是怎么回事?我想提交一个值而不重新加载整个页面,而只提交 iframe 中的特定元素。
【问题讨论】:
这可能会破坏其他网站的安全性,因此浏览器不允许这样做。您的总体目标是什么? 我的目标是提交一个值而不重新加载整个页面,因此只有特定元素在 iframe 中重新加载。反正有这样的结果吗? 是否必须来自您自己的网站?你还没有说你要提交什么信息。浏览器自动化可能是更好的选择,具体取决于您尝试提交的内容和原因。 让我们简单吧。默认情况下,如果我们发布了一些内容,它将重新加载整个页面或直接到我们指定的操作属性页面。我想要将它分隔在 iframe 中,因此它不会仅在 iframe 中重新加载整个页面。我认为如果我们说它的安全问题,我认为这是错误的,因为每个网站都使用客户端和服务器端的验证,所以它不可能用 iframe 破解。 对不起哈哈。我已经编辑过了。我想要的是跨页面而不是域以 iframe 形式提交值。谢谢 【参考方案1】:您不能将数据提交到“表单”。这不是表单提交在 WWW 上所做的。您可以提交到不同站点上的URL(可能与表单使用的 URL 相同)。只需将action
属性设置为绝对URI。 (如果目标站点实施了针对 CSRF 的保护,这可能会失败)。
如果您想提交到 iframe,请使用表单上的 target
属性。
<form action="http://example.com/foo.php" method="post" target="name_of_iframe">
<!-- etc -->
<iframe src="http://example.com" name="name_of_iframe"></iframe>
另一方面,如果您想通过客户端 javascript 操作其他网站的 DOM(例如,修改显示在框架中的输入值),那么您需要:
您试图操纵的网站的合作postMessage
and friends
【讨论】:
我尝试将表单放入 iframe 并尝试从 foo.php 中获取价值。这是行不通的。有没有办法得到这样的结果? @jarwobangun — 如果您将表单放在 iframe 内(而不是在页面上以 URL 作为 iframe 的 src),那么它将是仅在不支持 iframe 时使用的替代内容.不要以为它会出现在支持 iframe 的浏览器上。 哦,对不起,我想你弄错了,我想要的是跨页面而不是 iframe 形式的域。反正有这个吗?以上是关于将值提交到另一个页面 iframe 表单的主要内容,如果未能解决你的问题,请参考以下文章