gpt4 book ai didi

angularjs - 如何在 AngularJS 页面中接收 POST 请求?

转载 作者:行者123 更新时间:2023-12-04 11:36:22 25 4
gpt4 key购买 nike

我们制作了一个 AngularJS 应用程序,用户打开一个 URL (xyz.com/booking) 填写表格,然后选择一些商品进行购买。

之后,用户单击“购买”按钮并离开支付网关站点的站点。支付成功后,支付网关通过在回调 URL(xyz.com/booking-success) 上发送 POST 请求来将用户发回。

现在的问题是我为该回调 URL 配置的相应 Angular 页面没有打开。我在 RouteProvider 中配置了 xyz.com/booking-success 页面,但这似乎不起作用。

但是,如果我直接通过浏览器打开页面 xyz.com/booking-success,它就会被打开。

如何处理这种情况?任何帮助将不胜感激。

最佳答案

  • ngRoute无法处理通过 POST 访问的 URL,如果你在 index.html 上重写了你只是发布到 index.html 而不是你的路由,当你配置/booking-success 并且你通过 cURL 在那个 URL 上发布时它不起作用您实际上是发布到 index.html。 Angular 路由只是“虚拟”而不是真实的。像 cURL 或任何其他 HTTP 客户端这样的系统无法看到它,因此它们将发布到 index.html。
  • 永远不要处理来自 angular 内的支付/预订/任何网关的回调 URL。 Angular 很危险,因为你必须确保回调过程会被执行。 Angular 不是容错的,如果有任何 javascript 错误,你的 angular 调用中的任何错误你都会丢失所有回调数据,你真的被搞砸了。

  • 回调必须是您的 REST API 的一部分,并且必须实现以返回 HTTP 状态代码 200,否则在任何其他 HTTP 代码的情况下,网关应该知道它们必须重试调用。 (例如,skrill.com 在没有 HTTP 200 代码的情况下重复回调 10 次)。实际上,AngularJS 每次都会以 200 响应,因为您的 Web 服务器将提供 index.html,它并不关心 javascript 代码中发生了什么。
  • 只有 1 个可以通过 angular 处理的部分是 redirect_url ,通常是在代理端成功付款/操作后重定向用户的 URL。但与此同时,回调 URL 仍会在应用程序的较低级别上调用。重定向 URL 是通过 GET 内部浏览器重定向调用的,因此用户将正常看到它。

  • 每个“正常”网关都有 callback_url (您的 API 的低级通知,表示操作成功, redirect_url ,即重定向回您的网站 xyz.com/booking-success)。但他们应该分开。如果您的网关没有重定向,您别无选择,只能在新窗口中打开整个预订。并以某种方式在调用回调后通知您的前端。这可以通过间隔轮询来完成。例如,10 秒,这是检索您 booking_id 的实际状态(列 is_processed (true|false) 您将在回调代码中设置。当状态从 false 变为 true 时,您将通知您的前端(重定向用户或显示弹出窗口)。您也可以实现 socket.io 库,您可以处理轮询和通知调用回调 URL 时将立即生效。

    关于angularjs - 如何在 AngularJS 页面中接收 POST 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31104740/

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