【问题标题】:How to detect whether the incoming request to an angularjs application is a GET or POST request?如何检测到 angularjs 应用程序的传入请求是 GET 还是 POST 请求?
【发布时间】:2014-11-19 02:51:25
【问题描述】:

我是 angularjs 的新手。我使用 angular 种子骨架 https://github.com/angular/angular-seed 为客户端开发了一个 angularjs 应用程序。对于 API 服务器,我使用 expressjs 服务器。

我的主页网址类似于 localhost:9000/app/index.html#/home 因此,通常如果我点击 url localhost:9000/app/index.html#/home 我会看到我的主页。

但是,我要求某些 xyz 应用程序也向我的应用程序发出 POST 请求。

所以,我想确定我的 Angular 种子应用程序的传入请求是否来自外部应用程序。

和PHP一样有一个超级全局数组$_SERVER,可以通过它来判断传入的请求方式... angularjs中有什么东西可以判断请求方式吗?

我希望我的问题足够清楚,可以理解。

非常感谢您阅读我的问题,一些提示会很棒。

【问题讨论】:

  • 你的意思是,你怎么知道一个请求是 GET 还是 POST 到 expressjs?这看起来很简单 - 您将检查 GET/POST 的请求方法和引​​用者以查看它是否来自外部应用程序。
  • 由于您使用的是 express,因此您只需将路线分开即可。 app.get('/'), app.post('/').
  • 我想我的问题不是很清楚...我的应用程序在两个节点服务器上运行。一个。客户端,它是一个 angularjs 应用程序,在节点服务器(角种子样式)和 b 上运行。 API 服务器在快速服务器上运行。所以你可以忘记快递服务器......我想要的是,确定我的角度种子应用程序的传入请求方法。
  • angularjs 是客户端而不是服务器端。所以理想情况下它无法接收获取/发布请求...请适当地更改问题...

标签: javascript angularjs node.js


【解决方案1】:

您的要求意味着您想使用 Angular 前端为您的 API 提供 POST 方法端点。这没有意义。

使用特定路由设置的req 参数可以在 Express 的 API 中找到相当于 PHP 的 $_SERVER 数组来获取传递的变量。见http://expressjs.com/4x/api.html#router.route。这是您根据请求方法创建逻辑的地方。 app.get()app.post()app.put() 等等,正如 Ben 的评论中提到的那样。

在您提到的传统 PHP 示例中,整个请求都发送到服务器并将页面结果返回给浏览器,因此您有机会检测到是否发出了 POST 或 GET 并适当地引导请求。

Angular 是一个基于 JavaScript 的框架,在浏览器中运行。浏览器将使用 GET 请求最初下载所有 html/js/css,但随后它将在 javascript 上下文中运行,并且此后不涉及任何服务器,除非在 Angular 模块/控制器中明确编码。您可以在此处向您的 API 后端发出 GET/POST/PUT/DELETE 请求

基于用户与 UI 的交互,在 javascript 上下文中通过 XHR (XmlHttpRequest) 调用访问您的 API。这些调用可以使用 GET 或 POST 等进行,具体取决于您的 API 功能,使用角度 $http 或 $resource 等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-30
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 2017-10-30
    • 2015-07-01
    相关资源
    最近更新 更多