0

我目前正在为是否创建跨域请求代理的想法而苦苦挣扎。

我有一个与 API 交互的 jQuery 应用程序,在初始页面加载时至少向该服务器发出 4 个请求。两台服务器都完全在我的控制之下,但它们位于不同的子域上。出于这个原因,我一直在朝着使用 JSONP 绕过跨域请求策略的方法前进。

但是,我确实特别错过了一项功能:获取请求的 HTTP 状态代码。JSONP + jQuery 的工作方式,请求是否有效。如果没有,我为请求指定超时,如果达到超时,我假设失败(否则无法知道)。我真的很希望能够响应来自 API 服务器的 404 与 500 错误。

这使我认为本地代理可能会更好地工作 - 但它会占用服务器端资源(保存 jQuery 应用程序 + Sinatra 应用程序的服务器)而不是客户端资源(浏览器)。当每个页面加载是对 API 服务器的 4 个以上请求时,这当然可以加起来,即使它不会阻止应用程序加载。

我知道这不是一个真正的“问题”——所以如果不合适,请随时标记/关闭它。但是,我真的很想就这个问题发表一些意见。我通过在 Ruby 中开发本地代理来引入一些复杂性。

4

2 回答 2

1

我会坚持 JSONP 和子域之间的直接通信。

此外,您可能想查看使用 iframe 进行通信的(hacky)方法。iframe 不受子域间限制。只要两个子域都属于同一个顶级域,它们就可以通信。

于 2012-07-25T03:47:16.540 回答
0

JSONP 有一些限制,并不是您唯一的选择。由于您控制了两个域,您是否考虑过使用 CORS?如果没有,请查看:http ://www.html5rocks.com/en/tutorials/cors/

您可以在此处阅读有关 JSON-P 与 CORS 的信息:http: //json-p.org/

于 2012-07-25T04:12:12.737 回答