2010-11-06 1 views
2

Если ваше веб-приложение использует вызовы API веб-сервиса для внешнего источника, некоторые из этих источников будут лимитом скорости по вашему IP-адресу.Если вы вызываете клиентский вызов getJSON() с (& callback =) на сайт с ограничением скорости по IP-адресу, видят ли они ваш сайт или конечный пользователь?

Если вы сделаете эти звонки с на стороне клиента JavaScript - это означает, что они вызваны действиями браузера конечного пользователя - делает удаленный узел (который отправляет обратно данные в формате JSON) см вашей машины IP-адрес или IP-адрес конечного пользователя (с целью ограничения этого ограничения на основе IP-адресов)?

Я понимаю, что с помощью &callback= в источнике данных URL, вы будете выдавать запрос JSONP, , что означает, что адрес рассматривается удаленным узлом является то, что конечным пользователем и не адрес вашего сайта.

Например:

jQuery.getJSON(url+"&callback=?", function(data) { 
    alert("Stock Symbol: " + data.symbol + ", Stock Price: " + data.price); 
}); 

Верно ли, что вызов, как один выше, будет рассматриваться как исходящий от IP-адрес конечного пользователя, а не от IP-адрес сервера вашего веб-приложения?

ответ

7

Они видят IP-адрес конечного пользователя, запрос JSONP поступает прямо из браузера пользователя по адресу, на который он указывает. То, что вы делаете в основном, сделав JSONP вызов добавляет это к странице:

<script type="text/javascript" src="url?callback=someFunctionName"></script> 

Это делает браузер просто извлечь и запустить этот сценарий, который имеет это содержание:

someFunctioName({ /* data object */ });