【问题标题】:Receiving POST from external application in AngularJS在AngularJS中从外部应用程序接收POST
【发布时间】:2015-08-22 23:11:16
【问题描述】:

我正在编写一个使用 AngularJS 1.4.0 的应用程序,它需要能够从外部应用程序接收 POST 数据。我知道 AngularJS 中的路由经常在 URL 中做参数,例如:

.when('/section/:param', {
    templateUrl: 'views/home.html',
    controller: 'AppCtrl'
})

这种风格的问题是,在我的例子中,参数通常很长,并且会导致 Web 服务器忽略/截断请求/参数,因为 URL 超过了最大 URL 长度。

因此,我希望应用程序接收 POST 参数,而不是标准的 GET 样式参数,但我不确定如何捕获参数和值。

Angular 有没有办法直接捕获 POST 参数?我的第二个选择是简单地拥有一个ng-init,它使用后端来获取值,但如果可能的话,我更愿意将参数仅保留在 Angular 中。谢谢!

【问题讨论】:

标签: javascript angularjs parameter-passing


【解决方案1】:

除非你愿意通过在服务器端设置 cookie 来做一些奇怪的黑魔法 - 或类似的东西 - 在 javascript 中没有办法做到这一点。

POST 值根据请求发送到服务器,使用浏览器中运行的 javascript 无法捕获这些值。

也请查看此答案:How to read the post request parameters using javascript

【讨论】:

  • 这就是我害怕的。不过感谢您的澄清。然后我将在服务器上捕获它并将其以 ng-init 的形式发送到应用程序 / JS 中。谢谢!
  • 啊,好吧,这就是您对 ng-init 部分的意思。听起来像是一个不错的解决方案。我可能会使用工厂来注入变量,但 ng-init 感觉有点脏。不过是偏好问题。
  • 事实上,这里是 ng-init 上的文档:docs.angularjs.org/api/ng/directive/ngInit。除了一个特定的用例之外,他们似乎不鼓励使用该指令。
  • 谢谢@Hless。我想我不会使用 ng-init。我将不得不更多地查看工厂,并确定如何最好地将参数从后端获取到工厂
猜你喜欢
  • 2010-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-17
相关资源
最近更新 更多