如何使用 action 属性发送 html 表单数据而不重定向到另一个页面?
How do you send html form data using the action attribute without redirecting to another page?
我正在使用 Angular 和格子呢。我想提交以下表单,其中 posts public_token 使用 html 表单中的 'action' 属性进行 /authenticate。如何在不重定向到其他页面的情况下将 post public_token 发送到我的服务器 (/authenticate)。
第 2 步:简单集成
在您的网站或网络应用程序中包含以下标记(the 和标签):
-- 一个名为 public_token 的隐藏输入将附加到此表单
一旦用户完成 Link 流程。 Link 然后将提交
表单,将 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 的指南,尽管它明确指出在客户端公开它是安全的。
您必须阻止表单的默认操作:
有几种方法可以做到这一点,这里有两种 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()
像这样写一个指令,然后将其注入您的 angular 应用程序。
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>
我正在使用 Angular 和格子呢。我想提交以下表单,其中 posts public_token 使用 html 表单中的 'action' 属性进行 /authenticate。如何在不重定向到其他页面的情况下将 post public_token 发送到我的服务器 (/authenticate)。
第 2 步:简单集成
在您的网站或网络应用程序中包含以下标记(the 和标签):
-- 一个名为 public_token 的隐藏输入将附加到此表单 一旦用户完成 Link 流程。 Link 然后将提交 表单,将 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 的指南,尽管它明确指出在客户端公开它是安全的。
您必须阻止表单的默认操作: 有几种方法可以做到这一点,这里有两种 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()
像这样写一个指令,然后将其注入您的 angular 应用程序。
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>