gpt4 book ai didi

javascript - 在表单提交之前用 AngularJS 同步调用服务器

转载 作者:行者123 更新时间:2023-11-30 17:31:47 25 4
gpt4 key购买 nike

我正在将我的 AngularJS 应用程序与支付网关集成,该网关需要提交表单以启动收集用户信用卡详细信息的流程。

流程如下:

  1. 用户在 HTML 表单中填写信息。
  2. 用户点击提交按钮。
  3. onsubmit JavaScript 调用 AngularJS Controller 函数,该函数通过 $http 调用我的服务器并返回一些信息。
  4. 此信息用于填充表单中的隐藏字段。
  5. 表单被提交到支付网关网站,用户在该网站上输入他们的信用卡详细信息。

为了使这个过程起作用,在我从 onsubmit 返回 true 或 false 并允许提交表单之前,我需要调用我的服务器返回。

所有使用 promises ($q) 的示例最终都会生成使用回调的代码。如何通过同步调用实现上述流程,或者有其他方法可以实现我的要求吗?

function allowSubmit() {
var scope = angular.element(document.querySelector( '#bookingForm' )).scope();

try {
var success = scope.createPayment();//createPayment is a method on my controller I need to synchronously call my backend with
return success;
} catch (e) {
//log/alert
return false;
}
}


<form id="bookingForm" name="bookingForm" novalidate action=" https://www.example.com/xyz/process.trans" method="POST" onsubmit="return allowSubmit();" >
...
<button type="submit" class="btn btn-success btn-lg pull-right">Payment</button>
...
</form>

最佳答案

解决方案看起来是:创建没有操作或方法的表单,然后设置它们并在 Controller 中从服务器回调时提交。

<form id="bookingForm" name="bookingForm" novalidate >
...
<button class="btn btn-success btn-lg pull-right" ng-click="createPaymentAndNavigate(bookingForm.$valid)">Payment</button>
...
</form>

//In server callback on controller
var bookingForm = document.getElementById('bookingForm')
bookingForm.action = "https://www.example.com/xyz/process.trans";
bookingForm.method = "POST";
bookingForm.submit();

关于javascript - 在表单提交之前用 AngularJS 同步调用服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22887825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com