当前位置: 首页 > 面试题库 >

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

皮安顺
2023-03-14
问题内容

我们制作了一个AngularJS应用,其中用户打开一个URL(xyz.com/booking)填写表格,然后选择一些要购买的物品。

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

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

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

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


问题答案:
  1. ngRoute无法处理通过POST访问的URL,如果您已经在index.html上进行了重写,而只是发布到index.html而不是您的路由,则在配置/ booking-success并通过cURL对该URL进行POST时将无法正常工作您实际上是发布到index.html。角形布线只是“虚拟”的,不是真实的。诸如cURL或任何其他HTTP客户端之类的系统看不到它,因此它们正在发布到index.html。

  2. 切勿在angular内处理来自付款/预订/任何网关的回调URL。Angular是危险的,因为您必须确保将执行回调过程。Angular不是容错的,如果有任何javascript错误,Angular调用内的任何错误都将丢失所有回调数据,并且字面上就是搞砸了。

回调必须是REST
API的一部分,并且必须实现以返回HTTP状态代码200,否则,如果使用任何其他HTTP代码,网关应知道它们必须重试调用。(例如,如果没有HTTP
200代码,skrill.com将重复执行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_idis_processed (true|false)您将在回调代码中设置的列。状态从false更改为true时,您将通知您的前端(重定向用户或显示弹出窗口)。您还可以实现套接字。
io库,您可以处理轮询,并且在调用回调URL时,您的通知将立即生效。



 类似资料:
  • 问题内容: 如何从CherryPy中的POST请求接收JSON? 我去过此页面,尽管它在解释API,其参数及其作用方面做得很好。我似乎无法弄清楚如何使用它们将传入的JSON解析为一个对象。 这是我到目前为止的内容: 而且,这是我的jquery调用以发布帖子 问题答案: 工作示例: 链接到的文档介绍了3.2版中的几个CherryPy工具。该工具基本上可以更严格地完成上述操作,并使用3.2中的新主体处

  • 问题内容: 我正在学习Django 1.6。 我想使用HTTP POST请求发布一些JSON,并且我正在使用Django完成此任务的学习。 我试图用,但都不是为我工作。 我的views.py是 我正在使用请求模块发布JSON数据。 应该打印该消息并发布数据,但是我无法解决此简单问题。请告诉我如何在Django 1.6中收集发布的数据? 问题答案: 你在这里混淆了表单编码和JSON数据。用于表单编码

  • 我目前正在使用Web API开发REST Web服务。 现在我试图通过帖子接收流文件和对象。 当我发送它没有JobPosition对象时,我正确地收到了文件,也当我发送JobPosition没有文件时,我正确地收到了JobPosition。 但是当我通过邮递员发送流文件和对象时,我收到了错误。 我将感谢您的帮助,了解这是否可能,如果可能的话,方向将帮助我。 我尝试了所有可能的内容类型组合,但没有成

  • 问题内容: 我正在使用Express,它从静态目录加载AngularJS。通常,我会要求Express为其提供我和所有正确的Angular文件等。在我的Angular应用中,我有这些路由设置,它们替换了内容: 在我的主页上,我有到的链接,该链接将成功加载模板并将我定向到或指定的任何ID。问题是当我尝试将浏览器定向到页面或刷新页面时,请求将发送到Express / Node服务器,该服务器返回。 我

  • 问题内容: 我正在尝试发出POST请求,但无法完成。另一端什么也没收到。 这是应该如何工作的吗?我知道该功能,但我想我不能使用它,因为它不能用测试,对吗? 问题答案: 您基本上有正确的想法,只是发送错误的表格。该表格属于请求的正文。

  • 我在向控制器发出的web api rest post请求中始终收到一个空值 在我的控制器中 模型 请求: 我尝试了以下解决方案,但没有任何效果 https://myadventuresincoding.wordpress.com/2012/06/19/c-supporting-textplain-in-an-mvc-4-rc-web-api-application/ 如何在WebAPI中获取POS