我之前已经问过类似的问题,但我想知道是否有人可以帮助找到特定问题的解决方案:
我有一个表单,我想嵌入不同域的几个不同的网站。此表单需要重定向到PayPal。计划是将这个表单嵌入到iframe中,使其易于更新等,加上最少的嵌入代码。但是,由于原始策略相同,我无法使用parent.location.href = "http://PaypalPaymentAddress.com";
重定向表单。我不想在框架中处理付款(Paypal无论如何都禁止这样做)......
我能想到的唯一方法是运行脚本并将表单呈现到父页面中,调用Web服务或者获取HTML,但这显然会有很多工作!
我是如何设置它以使其正常工作的?
答案 0 :(得分:2)
您可以对表单使用目标属性"_parent"
,当提交时,目标URL将被加载到父窗口中。
答案 1 :(得分:1)
我的最终方法是基于Molle博士的答案,但略有不同。我已经在这里解释过,以防它对其他人有用:
我将表单设置为正常提交,允许我的所有服务器验证等只触发一次。如果表单成功提交(通过服务器验证),则会回发一个包含空表单的小型html客户端页面。
此空表单具有父页面URL的post操作和target =“Parent”,并且在客户端“document ready”上,jQuery方法提交表单,导致父页面重新加载。
如果脚本被禁用,还会提供带有“_ top”属性的链接。
<script type="text/javascript">
jQuery(document).ready(function () {
$("#redirectForm").submit();
});
</script>
<a href="{parentpageurl}" id="redirectLink" target="_top">click here if not redirected automatically</a><br />
<form id="redirectForm" method="POST" action="{parentpageurl}" target="_parent">
</form>
绕过“同源策略”的一种方法,因为此方法适用于跨域。希望能帮助别人!