1

我正在制作一个服务,它基本上只是另一个服务 api 的 UI,它只允许在一段时间内每台机器发出特定数量的请求。

因为我会为很多人发出 api 请求,所以我会很快达到这些限制,所以为了解决这个问题,我想使用 JQuery 在客户端进行 api 调用,但是由于 javascripts同源策略,这证明了要相当困难。

所以我想知道,是否可以创建一个通过客户端 IP 地址路由 api 请求的服务器端代理?如果是这样,我该如何实施呢?我查看了诸如node-http-proxy的代理表之类的东西,但我仍然不确定它是否可以与客户端 IP 地址一起使用。

4

2 回答 2

1

不幸的是,在通过此类服务器代理进行路由时,您不能“使用客户端 IP”作为源。

但是,如果服务接受 X-Forwarded-For HTTP 标头,您可能会很幸运。将请求发送到服务时,您可以在代理中设置该标头。标头的值应该是客户端 IP。

在此处阅读有关 X-Forwarded-For 的更多信息:http ://en.wikipedia.org/wiki/X-Forwarded-For

于 2013-07-30T21:34:00.397 回答
1

正如@HallvarHelleseth 所提到的,你不能做你想做的事。但是,如果有问题的服务支持JSONPCORS,您应该能够直接从客户端执行您想要的操作。

jQuery 支持 CORS 和 JSONP,如果你正在使用的话。限制是 IE < 10 的模型与支持 CORS 的其他浏览器不同。对于那些实施旨在广泛使用的 API 服务的人,我建议同时支持这两种服务。

于 2013-07-30T21:44:22.607 回答