我有一个使用 Javascript/HTML 的 Windows 8 应用程序,并且在 iframe 中我有一个 Paypal 表单:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="on0" value="Pages">
<select name="os0">
<option value="10">$1.95</option>
<option value="25">$2.95</option>
</select>
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="encrypted" value="[removed]">
<input type="image" src="/btn_buynow_LG.gif" border="0" name="submit" alt="">
</form>
此表单在包括 IE10 在内的所有浏览器中都可以正常工作,但是当从 Windows 8 应用程序的 iframe 中提交时,它会将用户引导至 Paypal 主页。这通常表明表单存在问题。我尝试过托管 Paypal 按钮、加密的、未加密的按钮,它们都表现出相同的行为。只有当我从 Windows 8 应用程序中提交此表单时,它才会转到 Paypal.com 主页。
我还尝试将每个 URL 添加到我的清单中作为允许的 URL:
<ApplicationContentUriRules>
<Rule Match="http://example.com" Type="include" />
<Rule Match="http://*.example.com" Type="include" />
<Rule Match="http://paypal.com" Type="include" />
<Rule Match="http://*.paypal.com" Type="include" />
<Rule Match="https://paypal.com" Type="include" />
<Rule Match="https://*.paypal.com" Type="include" />
</ApplicationContentUriRules>
我尝试添加/删除沙盒属性并添加所有属性组合,如下所示:
<iframe sandbox="allow-same-origin allow-top-navigation allow-forms allow-scripts allow-popups" src="http://example.com/paypalbtn.html"></iframe>
如果我删除target="_blank"
Windows 8 应用程序将导航到黑屏并挂起。我被迫 alt-tab 并关闭应用程序。我认为这是表单POST到另一个进程中的新窗口的问题。
如何从 Windows 8 应用程序的 iframe 中启动 Paypal?
需要表格 POST 吗?我现在意识到表单 GET 有效。