Phonegap打开表单在Web浏览器上提交到外部域

时间:2012-08-10 16:08:36

标签: javascript forms jquery-mobile cordova submit

我在使用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,也没有帮助。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分: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提交。