我想通过以老式方式(非 Ajax)发布输入字段来将表单提交到外部站点,它也提交了但是 Angular 在跳转到外部页面之前在控制台中给我错误。
我在 HTML(模板)中使用了以下代码
<form (submit)="onSubmit($event)" method="POST" [formGroup]="form" *ngIf='form' action="https://www.sandbox.paypal.com/cgi-bin/webscr" >
在组件中
onSubmit(obj: any) {
if (!this.form.valid) {
this.helper.makeFieldsDirtyAndTouched(this.form);
} else {
this.loader = true;
// save data in online_payment_ipn
this.paymentService.saveOnlinePaymentIpn({}, 'paypal')
.subscribe(response => {
obj.target.submit();
}, (err: any) => {
this.loader = false;
this.helper.redirectToErrorPage(err.status);
});
}
}
现在这个表单首先通过普通的 react 表单 post(ajax) 将数据保存在我的站点中。之后,我以旧的提交方式将整个表单发布到第 3 方,如 paypal,但我得到了
表单提交已取消,因为表单未连接
感谢任何帮助。 @H.B.谢谢
最佳答案
您可能应该使用 onSubmit($event) 然后将事件取消到您的自定义逻辑。您可以通过 event.target 访问表单。在 Angular 绑定(bind)中传递 this 可能只是行不通,我可能弄错了。
关于javascript - Angular 2/4 : How to POST HTML form (Not ajax) thru component on callback of 1st ajax submit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49446854/