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

2023-11-21

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

之后,用户单击“购买”按钮并离开该站点前往支付网关站点。付款成功后,支付网关通过在回调 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 上发布时,它不起作用您实际上是在发布到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. 只有 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 时您的通知将立即发出。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 AngularJS 页面中接收 POST 请求? 的相关文章

  • Angular UI 网格 - 选定行上的单击事件

    Target 我有一个 UI 网格 当我单击一行时 它应该被选中 并且应该调用以该行作为参数的函数 目前的方法 我使用以下配置代码来生成网格 scope gridOptions enableFiltering true enableRowH
  • MEAN 堆栈文件上传

    我最近开始使用 MEAN Stack 进行编程 目前正在实现某种社交网络 一直使用 MEAN io 框架来做到这一点 我现在的主要问题是让文件上传正常工作 因为我想做的是将文件从表单接收到 AngularJS 控制器中 并将其与更多信息一起
  • 使用 Web api 的 AngularJS 客户端路由和令牌身份验证

    我想使用 asp net mvc webapi 作为后端和客户端路由 无 cshtml 在 SPA angularjs 应用程序中创建一个身份验证和授权示例 以下只是可用于设置完整示例的函数示例 但我就是无法把它们放在一起 任何帮助表示赞赏
  • 如何使用 AngularJS 设置页面标题[重复]

    这个问题在这里已经有答案了 我使用以下代码来显示每个 AngularJS 应用程序模板的页面标题 但每当我尝试输入无效的 URL 来测试 otherwise 时 我都会收到以下错误 TypeError Cannot read propert
  • TransformResponse 标头参数 ($resource) 中缺少自定义响应的标头

    我定义了一个 resource到一个 API 端点 该端点返回包含多个内容的响应headers但在transformResponse https docs angularjs org api ngResource service 24res
  • 告诉 Angular Js 忽略特定路由

    我已经在 Angular 中设置了路由 一切正常 locationProvider html5Mode true routeProvider when templateUrl Home Index when User templateUrl
  • AngularJS ngRepeat:如何区分偶数/奇数元素?

    我是角度新手 并尝试执行以下操作 tr div td class even a href element a td div div td class odd a href element a td div tr 对于上面的代码 两者ng i
  • ES6 Promise 不更新 AngularJS DOM [重复]

    这个问题在这里已经有答案了 我无法理解角度分量范围 如果我做类似的事情 function myComponent this data Hello World let myModule angular module myModule myMo
  • 使用箭头键盘而不是鼠标时,ng-options 模型未更新

    我创建了js小提琴 Fiddle http jsfiddle net reptildarat Z4AN2 3 我创建了一个包含一些 ng options 的表单 当您使用按钮而不是鼠标时 它会出现奇怪的行为 只需单击文本框并按 tab 您可
  • 使用 AngularJS“copy()”避免引用问题

    我正在显示一个项目列表 每个项目旁边都有一个 编辑 按钮 单击可打开 Angular ui 模式窗口 用户可以更改特定项目的某些属性 现在 让我烦恼的是 当在此编辑窗口中输入内容时 项目列表中的特定项目立即反映了更改 我只希望它在用户单击模
  • 如何在 Angular js 中创建动态工厂?

    在我的项目中 我必须在 Angular js 中创建动态工厂 其动态工厂名称如下 function createDynamicFactory modId return myModule factory modId existingServi
  • 如何使用 angularjs 动态添加行?

    我使用代码通过单击 添加行 来添加行和 2 列 我的需要是 首先在输入字段中填写值 单击 添加项目 按钮后 值必须显示在表结构中 我是初学者 无法使用 for 循环 任何人都可以解决这个问题吗 尝试代码 https jsfiddle net
  • AngularJS 控制器内的函数

    我有一个代码片段 其中有一个 Angular 模块化控制器 但同一控制器内有一个函数并带有一个调用 这让我怀疑 Javascript 或 Angular 是否允许这种编码方式 如果是 那么它如何读取它 请参阅我的以下代码格式 obj con
  • 角度不安全 url

    我使用此指令将 jCrop 与 Angular 结合使用 http plnkr co edit Z2IQX8s9UK6wQ1hS4asz p preview http plnkr co edit Z2IQX8s9UK6wQ1hS4asz p
  • 在 AngularJS 应用程序中使用 select2 插件

    我在 AngularJS 应用程序中使用 select2 插件来显示一些实体 标签 的列表 这是我的模板的部分 select ddlTags ui select2 select2Options multiple ng model link
  • Angular UI Grid - 将图像导出为 pdf

    我想将图像添加到 pdf 的标题中 我正在尝试添加已转换为 base64 的图像以导出 Pdf 标题 scope gmGrid exporterPdfHeader margin 30 5 30 15 table widths body MC
  • Angular 资源测试:$httpBackend.flush() 导致意外请求

    我想测试 angularjs 资源 use strict AddressService provides functionality to use address resource in easy way This is an exampl
  • 从不同的控制器修改 $rootscope 属性

    在我的 rootscope 中我有一个visible控制 div 可见性的属性 app run function rootScope rootScope visible false HTML 示例 section section
  • Angularjs 中的动态表单名称属性

    当动态创建 inputName 时 人们将如何使用 formName inputName valid
  • angular.js - 欧洲表示法中的十进制数字

    在 Angular 中 您可以使用货币过滤器来格式化数字 如下所示 service price currency 标准输出是 0 00 输出如何 0 00 欧洲符号 角支撑i18n位置标准 全球化 国际化 当涉及到数字格式时 Angular

随机推荐

  • 使用 Shadow DOM 有哪些缺点?

    在教程中我只看到了 Shadow DOM 的优点 但也应该有缺点 在哪些情况下我们应该避免使用 Shadow DOM Shadow DOM 功能既可以被视为优点 也可以被视为缺点 风格隔离如果您想要的话 这是一个好处 但如果用户想从全局 C
  • 从预处理器中的常量中删除强制转换

    背景 在微控制器代码中 我使用生产商提供的库 其中定义了许多常量 如果我的一些常量 与微控制器外部的组件共享 与git subtree 和微控制器常数 例如 该库定义 ifdef SOME PARTICULAR MODEL define F
  • SSRS 2008 R2 - SSRS 2012 - ReportViewer:在 Safari/Chrome 中报告,但在 Firefox/Internet Explorer 8 中工作正常...为什么?

    我有一些简单的报告SSRS 2008 R2 但它们根本不会在 Safari 或 Chrome 中显示 根据微软的在线图书 这些浏览器的支持方式有限 但是 数据 加载 时钟完成后我看不到任何内容 页面顶部的参数栏和面包屑导航部分都在那里 此外
  • 仍然对 Python 中的可变默认参数值“陷阱”感到困惑[重复]

    这个问题在这里已经有答案了 我知道不应该使用可变的默认参数值在 Python 中 有一些例外 因为该值仅在定义函数时计算和存储一次 而不是在以后每次调用函数时计算和存储 我对此的理解是这样的 使用下面的例子 请原谅我的不精确的语言 因为我只
  • 仅将 dropShadow 添加到网格窗格 JavaFx 2.2 的边框

    只想将阴影添加到网格窗格的边框而不是内部子元素 here is the image of screen showing the effect 使用 StackPane 并将 GridPane 放入其中 使用 CSS 设置 StackPane
  • 动态改变colors.xml的值来改变android应用程序的外观和感觉

    问题 我正在尝试动态更改 Android 应用程序的外观和感觉 例如 应用程序启动并从服务器获取一组值 这些值是通常位于colors xml 中的元素 我正在寻找的是一种动态更改colors xml 中的元素并使用从服务器接收到的这些新值进
  • 如何使用 Delphi 中的当前区域设置格式化整数

    var i integer i 1234567 鉴于上述情况 我希望字符串 1 234 567 作为输出 假设英国区域设置 IntToStr 只是给我 1234567 我确信有一个单行线可以解决这个问题 但我找不到它 尝试格式化功能 Lab
  • 如何保留嵌入小部件的样式?

    如何制作外部PHPwidget页面有自己的CSS 问题是 当外部页面是included 它受到样式表的影响host page 包含的页面实际上是一个注释 小部件 带有自己的 css 文件 大约 30 行 不多 并且高度和宽度的灵活性是必须具
  • 如何将Jupyter笔记本上的环境切换为新笔记本?

    我有一个具有各种环境的实例 有些笔记本与不同的环境兼容 例如notebook1 用于 MXNet notebook2 用于 Tensorflow 从notebook1移动到notebook2时如何跳转到新环境 我尝试这样做 但这不适用于 J
  • 是否可以使用与 std::set 中包含的类型不同的元素来执行搜索和删除?

    假设我有以下内容 struct MetadataThingy void actual thingy int some metadata int more metadata bool operator lt MetadataThingy co
  • @media print 的 CSS 第 x 页(共 y 页)

    我将在这个问题的前言中说 我知道这个问题之前已经被问过 但我能找到的所有答案似乎都引用了一个不再有效的过时的解决方案 至少在 Firefox 56 64 位 中 过时的方法是 曾经有一个自动实例化的 CSS 计数器 名为pages 因此从该
  • 向每个团队成员发送成功自动化构建的通知

    我们只是将 Visual Studio Team Services 集成为我们的新工作流程 并在提交到 master 的基础上设置自动构建 目前 承诺掌握并发起新构建的个人将在构建失败或成功时收到通知电子邮件 我们以为我们都会收到通知 但事
  • MVVM WPF ComboBox SelectedItem 绑定未在数据网格内激活

    在数据网格内操作时 我一直在努力保存组合框选定的值 当我制作没有数据网格的测试解决方案时 一切正常 上下文是与相关国家的人名 国家 地区存储在 xml 文件中 这是初始视图的快照 您可以在此处看到PersonList xaml 的重要部分
  • Java 包与 C++ 库

    In Java 有一种叫做package Does library in C 代表相同的含义 特别是在包含相关子句和使用受保护成员等术语中 Thanks 一个事物有不同的维度packageJava 中的意思 作为一个区分内部类名称与其他包中
  • 设计模式名称:从类级别获取类

    特别是在单元测试中 我们使用这种 设计模式 我称之为 从类级别获取类 框架测试 py class FrameWorkHttpClient object class FrameWorkTestCase unittest TestCase Su
  • “长度不能小于零。”在空白行上

    即使我注释掉发生错误的行 我仍然收到上述错误消息 知道是什么原因造成的吗 我尝试用测试值重写这些行 但仍然遇到相同的错误 这在调试模式下工作得很好 只有在部署中才会出现 原始代码 Line 21 string domain username
  • html5 画布中的运动 jpeg

    我正在尝试将运动 jpeg mjpeg 流 来自网络摄像头 包装到 html5 画布中 我知道 Safari 和 Chrome 对 mjpeg 具有本机支持 因此我可以将其放入img使其发挥作用 我想将它包裹在画布中的原因是我想对其进行一些
  • 设置对话框进度

    我有一个异步任务 在执行任务时不会添加百分比 它始终保持在 0 0 100 这是我的代码 private class getAppInfo extends AsyncTask
  • Django-filter 按相关字段过滤

    我有两张桌子 class Writer models Model name model CharField class Article models Model name model CharField writer model Forei
  • 如何在 AngularJS 页面中接收 POST 请求?

    我们制作了一个 AngularJS 应用程序 用户打开一个 URL xyz com booking 填写表格 然后选择一些要购买的商品 之后 用户单击 购买 按钮并离开该站点前往支付网关站点 付款成功后 支付网关通过在回调 URL xyz