我使用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的指导,尽管它明确指出在客户端公开它是安全的。
答案 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>