阅读外部网站提交的 Angular 中的 POST 表单
Read POST form in Angular submitted by external websites
我正在开发一个网站,后端 Java,前端 Angular。某些外部网站可能会使用 POST 形式向我的网站发送数据。例如,
▼ 一般
请求URL:https://myangularwebsite/
请求方法: POST
...
▼ 请求Headers
Content-Type: application/x-www-form-urlencoded
主持人: myangularwebsite
来源: https://externalwebsite
推荐人: https://externalwebsite/send.form?id=0
...
▼ 表单数据
ID:0000000
时间: 2017.06.04 11:53:58
签名: ...geirgmGKFGJWR...
...
现在,我需要以某种方式捕获 Angular 中的表单,send/redirect 将其发送到后端以验证签名,然后 return 将答案返回给 Angular继续使用该网站。
我尝试发布到我的网站以测试它如何使用 Postman 工作,但得到 Cannot POST /
.
我知道如何在 Angular 中使用 GET 和 URL 查询参数,但我认为我需要处理基于 headers 的 POST 请求Chrome DevTools 'Network' 部分从 externalwebsite
到 myangularwebsite
。
我是否应该在后端指定一个路由并将其公开,例如 .../api/external
在我的后端并告诉这些网站使用此 link 而不是直接发布到我的 Angular 网站首页?
我已经读过另一个问题()有点相似,但我认为使用 PHP 对我来说不是正确的方法,因为我正在开发的网站已经有旧版本写在 PHP.
您提供的 link 处的答案是正确的:您不能仅在 Java 脚本中完成,您必须使用一些服务器端代码。他们以 PHP 为例,但任何服务器端组件都可以,并且由于后端有 Java,所以它是 Java.
因此,当来自外部站点的 HTTP 请求时,您必须使用服务器端组件来处理它。但也有一些选择。
如果此请求是使用您的用户浏览器发出的(因此它类似于重定向,但使用 POST 方法),那么您可以执行以下操作:在以下位置捕获该请求您的后端,将一些 javascript 和一些数据输出到用户的浏览器,并在您的 Angular 代码中处理该数据。或者这可能是重定向到您的主要 Angular 入口点,这取决于您。
如果此请求是通过其他方式发出的(例如,这是使用 curl 发出的服务器到服务器请求,就像来自信用卡处理的通知),不涉及浏览器,那么您不需要任何 Java 脚本(Angular 或任何可能的脚本),因为只有浏览器才需要它们。在这种情况下,您只需在服务器端处理请求。
在这两种情况下,专门用于处理(或登陆)此类外部请求的特殊端点似乎是合理的。
我正在开发一个网站,后端 Java,前端 Angular。某些外部网站可能会使用 POST 形式向我的网站发送数据。例如,
▼ 一般
请求URL:https://myangularwebsite/
请求方法: POST
...
▼ 请求Headers
Content-Type: application/x-www-form-urlencoded
主持人: myangularwebsite
来源: https://externalwebsite
推荐人: https://externalwebsite/send.form?id=0
...
▼ 表单数据
ID:0000000
时间: 2017.06.04 11:53:58
签名: ...geirgmGKFGJWR...
...
现在,我需要以某种方式捕获 Angular 中的表单,send/redirect 将其发送到后端以验证签名,然后 return 将答案返回给 Angular继续使用该网站。
我尝试发布到我的网站以测试它如何使用 Postman 工作,但得到 Cannot POST /
.
我知道如何在 Angular 中使用 GET 和 URL 查询参数,但我认为我需要处理基于 headers 的 POST 请求Chrome DevTools 'Network' 部分从 externalwebsite
到 myangularwebsite
。
我是否应该在后端指定一个路由并将其公开,例如 .../api/external
在我的后端并告诉这些网站使用此 link 而不是直接发布到我的 Angular 网站首页?
我已经读过另一个问题(
您提供的 link 处的答案是正确的:您不能仅在 Java 脚本中完成,您必须使用一些服务器端代码。他们以 PHP 为例,但任何服务器端组件都可以,并且由于后端有 Java,所以它是 Java.
因此,当来自外部站点的 HTTP 请求时,您必须使用服务器端组件来处理它。但也有一些选择。
如果此请求是使用您的用户浏览器发出的(因此它类似于重定向,但使用 POST 方法),那么您可以执行以下操作:在以下位置捕获该请求您的后端,将一些 javascript 和一些数据输出到用户的浏览器,并在您的 Angular 代码中处理该数据。或者这可能是重定向到您的主要 Angular 入口点,这取决于您。
如果此请求是通过其他方式发出的(例如,这是使用 curl 发出的服务器到服务器请求,就像来自信用卡处理的通知),不涉及浏览器,那么您不需要任何 Java 脚本(Angular 或任何可能的脚本),因为只有浏览器才需要它们。在这种情况下,您只需在服务器端处理请求。
在这两种情况下,专门用于处理(或登陆)此类外部请求的特殊端点似乎是合理的。