如何使用action属性发送html表单数据而不重定向到另一个页面?

时间:2016-03-08 03:41:25

标签: javascript html angularjs plaid

我使用Angular和Plaid。我想提交以下表单,该表单使用' action'将public_token发布到/ authenticate。 html表单中的属性。如何将public_token发布到我的服务器(/ authenticate)而不重定向到其他页面。

第2步:简单集成

在您的网站或网络应用程序中包含以下标记(和标记):

- 名为public_token的隐藏输入将附加到此表单 一旦用户完成链接流程。然后链接将提交 表单,将public_token发送到您的服务器。 -

<form id="some-id" method="POST" action="/authenticate"></form>

<script
  src="https://cdn.plaid.com/link/stable/link-initialize.js"
  data-client-name="Client Name"
  data-form-id="some-id"
  data-key="test_key"
  data-product="auth"
  data-env="tartan">
</script>

可在此处找到相关说明: https://plaid.com/docs/link/#step-1-get-your-public_key

没有给出关于如何从客户端表单获取public_token的指导,尽管它明确指出在客户端公开它是安全的。

2 个答案:

答案 0 :(得分:0)

您必须阻止表单的默认操作: 有两种方法可以做到这里有两个jQuery和Vanilla JS:

<强>的jQuery

$('#form').submit(function (event) {
    event.preventDefault();
    window.history.back();
});

<强> JS

if (element.addEventListener) {
    element.addEventListener("submit", function(event) {
        event.preventDefault();
        window.history.back();
    }, true);
}
else {
    element.attachEvent('onsubmit', function(event){
        event.preventDefault();
        window.history.back();
    });
}

<强>角 您可以将$ event对象传递给您的方法,并在其上调用$ event.preventDefault(),以便不会发生默认事件:

<a href="#" ng-click="do($event)">Click</a>

// then in your controller.do($event) method
$event.preventDefault()

答案 1 :(得分:0)

像这样写一个指令,然后注入你的角度应用程序。

yourApp.directive('preventDefault', function() {
    return {
        restrict: 'AE',
        link: function(scope, element, attrs) {
            element.on('click', function(e){
                    e.preventDefault();
                });
        }
   };
});

然后在表单或任何要停止默认行为的html标记中添加指令“prevent-default”,如

<form id="some-id" method="POST" action="/authenticate" prevent-default></form>