0

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

第 2 步:简单集成

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

-- 一旦用户完成链接流程,一个名为 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 的指导,尽管它明确指出在客户端公开它是安全的。

4

2 回答 2

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();
    });
}

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

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

// then in your controller.do($event) method
$event.preventDefault()
于 2016-03-08T04:36:46.857 回答
0

像这样编写指令,然后将其注入您的角度应用程序。

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

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

<form id="some-id" method="POST" action="/authenticate" prevent-default></form>
于 2016-03-08T04:42:36.570 回答