4

我在使用 phonegap 在 Android 和 iPhone 的网络浏览器上打开表单提交时遇到问题。我想用这样的js提交一个表单:

<html>
  <body>
    <form target="_blank" action="https://externalDomain.com">
      <input value="123" />
      <input value="456" />
    </form>
    <script>
      form.submit();
      // do something else
    </script>
  </body>
</html>

所以这个脚本的执行发生在存储在设备上的文件中,比如说“index.html”,我希望提交在浏览器上打开,因为我需要用户在“externalDomian.com”上填写支付处理器表单. 然后用户将再次进入应用程序,他可以检查付款是否正确处理。

我在 android 上使用 phonegap 2.0.0 我在 config.xml 上尝试了这个配置,但它没有帮助

<access origin="https://externalDomain.com" browserOnly="true" />

在 iPhone 上,我在 Cordava.plist 上将 OpenAllWhitelistURLsInWebView 标志设置为 NO,也没有帮助。

任何帮助将非常感激。

4

1 回答 1

0

执行表单的 AJAX 提交,这样用户实际上不会被重定向到外部网站,而是保留在您的应用程序中:

<html>
  <body>
    <form id="foo-form" target="_blank" action="https://externalDomain.com">
      <input value="123" />
      <input value="456" />
    </form>
    <script>
    $('#foo-form').on('submit', function () {

        //create AJAX request to submit form
        $.get(this.action, $(this).serialize(), function (response) {
            //the `response` variable now holds what the server returned after the form submission
        });

        //stop regular submission of form
        return false;
    });
    </script>
  </body>
</html>

然后,您可以将响应添加到 DOM,允许用户填写外部表单。然后绑定到该表单并执行另一个 AJAX 提交。

于 2012-08-10T16:15:41.063 回答