java - 读取外部网站提交的 Angular 中的 POST 表单

标签 java angular typescript frontend backend

我正在开发一个网站,后端使用 Java,前端使用 Angular。有一种情况,一些外部网站可能会使用 POST 形式向我的网站发送数据。例如,

一般
请求网址: https://myangularwebsite/
请求方式:POST
...

请求 header
内容类型: application/x-www-form-urlencoded
主机: myangularwebsite
来源: https://externalwebsite
推荐人: https://externalwebsite/send.form?id=0
...

表单数据
编号:0000000
时间: 2017.06.04 11:53:58
签名: ...geirgmGKFGJWR...
...

现在,我需要以某种方式在 Angular 中捕获表单,将其发送/重定向到后端以验证签名并将答案返回给 Angular 以继续使用该网站。 我尝试发布到我的网站以测试它如何使用 Postman 工作,但得到 Cannot POST/

我知道如何在 Angular 中使用 GET 和 URL 查询参数,但我认为我需要根据从 externalwebsitemyangularwebsite.

我是否应该在后端指定一个路由并将其公开,例如,在我的后端中使用 .../api/external 并告诉这些网站使用此链接而不是直接发布到我的 Angular网站的主页?

我已经阅读了另一个有点相似的问题 ( How to read form post data in Angular 2 typescript? ),但我认为使用 PHP 对我来说不是正确的方法,因为我正在开发的网站已经有一个用 PHP 编写的旧版本。

最佳答案

您提供的链接中的答案是正确的:您不能仅使用 Javascript 来完成,您必须使用一些服务器端代码。他们以 PHP 为例,但任何服务器端组件都可以,并且因为您的后端有 Java,就让它成为 Java。

因此,当 HTTP 请求来自外部站点时,您必须使用服务器端组件来处理它。但也有一些选择。

  1. 如果此请求是使用您的用户浏览器发出的(因此它类似于重定向,但使用的是 POST 方法),那么您可以执行以下操作:在您的后端捕获该请求,输出一些 javascript 和一些将数据发送到用户的浏览器并在 Angular 代码中处理该数据。或者这可能是重定向到您的主要 Angular 入口点,这取决于您。

  2. 如果此请求是通过其他方式发出的(例如,这是使用 curl 发出的服务器到服务器请求,就像来自信用卡处理的通知),并且不涉及浏览器,那么您不需要不需要任何 Javascript(Angular 或任何可能的),因为它们仅在浏览器中需要。在这种情况下,您只需在服务器端处理请求。

在这两种情况下,将一些特殊端点专门用于处理(或登陆)此类外部发起的请求似乎是合理的。

关于java - 读取外部网站提交的 Angular 中的 POST 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44353067/

相关文章:

java - 交易回滚和网络服务

java - 更改java中的最低有效位(LSB)

java - 切换完成后再次显示 java 控制台菜单

angular - 我正在使用 Chart.js 并希望更改工具提示以根据时间戳输入显示日期格式

angular - 无法读取未定义的属性 'ngModule'

javascript - typescript 创建新 map <String, List<String>>

TypeScript Exclude<UnionOfTypes, Interface> 是类型 "never"

html - Angular Material 选项卡未突出显示

reactjs - 在执行 axios post 请求时,如何修复与 typescript react 时未捕获的 promise 错误?

java - 命名空间问题