1

我知道以前有人问过类似的问题,但我想知道是否有人可以帮助找到特定问题的解决方案:

我有一个表格,我想在不同的域中嵌入几个不同的网站。此表单需要重定向到 PayPal。计划是将此表单嵌入到 iframe 中,使其易于更新等,并且嵌入的代码最少。但是,由于相同的来源政策,我不能parent.location.href = "http://PaypalPaymentAddress.com";用来重定向表单。我不想在框架中处理付款(Paypal 无论如何都禁止这样做)......

我能想到的唯一解决方法是运行一个脚本并将表单呈现到父页面中,调用一个 Web 服务左右来获取 HTML,但这显然是很多工作!

有什么想法可以设置它以使其正常工作吗?

4

2 回答 2

3

您可以使用表单的目标属性 "_parent",当它被提交时,目标 URL 将被加载到父窗口中。

于 2013-02-03T23:10:05.920 回答
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>

绕过“同源策略”的一种方法,因为此方法适用于跨域。希望对某人有所帮助!

于 2013-02-09T14:04:23.523 回答