2013-07-30 56 views
1

我正在提供的服務基本上只是一個用於另一個服務api的用戶界面,它只允許在一定時間內每臺機器發出特定數量的請求。創建一個代理路由通過客戶端計算機

因爲我將作出對很多人API請求,我就趕緊打這些限制,所以要解決這個問題,我想是因爲JavaScript的same-origin policy的但使用jQuery做在客戶端的API調用,這是證明是相當困難的。

所以我想知道,是否有可能創建一個服務器端代理,通過客戶端IP地址路由API請求?如果是這樣,我該如何去實施呢?我已經看過諸如node-http-proxy的代理表之類的東西,但我仍然不確定它是否可以與客戶端的IP地址一起工作。

回答

1

不幸的是,當通過這樣的服務器代理進行路由時,您不能「使用客戶端IP」作爲源。

但是,如果服務接受X-Forwarded-For HTTP Header,你可能會很幸運。將請求發送到服務時,您可以在代理中設置該標頭。標頭的值應該是客戶IP。

瞭解更多關於X - 轉發,因爲在這裏:http://en.wikipedia.org/wiki/X-Forwarded-For

1

正如@HallvarHelleseth提到你不能做你想要什麼。但是,如果有問題的服務支持JSONPCORS,則應該能夠從客戶端直接執行您想要的操作。

如果您使用的是jQuery,那麼jQuery支持CORS和JSONP。限制是IE < 10與其他支持CORS的瀏覽器有不同的模型。對於那些實施API服務的人來說,我會建議支持這兩種服務。