【问题标题】:Multiple cross-domain resources end-point in AngularJSAngularJS 中的多个跨域资源端点
【发布时间】:2014-10-23 03:31:36
【问题描述】:

这是我的场景:

我将构建一个需要与多个跨域服务器交互的AngularJS webapp。有两种方法:

  1. 从客户端发出所有请求 - 据我了解,AngularJS 使我们能够构建富客户端并对服务器进行 REST 调用以获取数据。但是对于这种方法,我必须处理 CORS 问题。

  2. 将这些调用移至服务器端 (Node.js) - Node.js 对跨域服务器进行所有调用。它为 AngularJS 公开 REST API 以请求 Node.js 进行这些调用。

哪种方法适合我的场景?是否有任何标准可以指导我使用哪种方法?

那些跨域资源不是我维护的。我没有办法控制他们提供资源的方式。此外,至少有一种资源不支持 CORS。此时我配置了一个代理来处理这些调用。

【问题讨论】:

  • 当请求被认为是复杂的时候,就会出现跨域问题。基本上,您可以毫无问题地进行 GET 操作的跨域调用。
  • 那些跨域资源是RESTful的,不是我维护的。我必须使用其他 http 操作。
  • 如果您只想获取数据,则 GET 以外的 HTTP 操作没有意义。
  • 它们很可能是 RESTful 资源。我修改了我的问题。

标签: angularjs cross-domain cors angularjs-resource


【解决方案1】:

在与跨域交互时,如果目标服务器支持,您可以选择使用 CORS 或 JSONP。 如果不是唯一可行的选择是通过您自己的服务器代理请求。

您可以通过您的服务器使所有内容都成为代理,但这需要付出努力和时间来实现。 我认为对支持它的服务器执行正常的 CORS 或 JSONP 方式并在底层基础架构不支持时使用代理方法没有任何危害。

【讨论】:

  • AngularJS 中的常见做法是从客户端进行所有调用吗?我的思维方式仍然坚持传统的服务器-客户端模型(方法 2)。
  • 您正在创建一种混搭。通过您的服务器代理数据也有性能损失。选项 1 也是客户端服务器模型,除了服务器不是您的服务器 :)
猜你喜欢
  • 1970-01-01
  • 2013-10-29
  • 2012-08-20
  • 2018-05-04
  • 2011-05-07
相关资源
最近更新 更多