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

Если ваше веб-приложение использует вызовы API веб-службы к внешнему источнику, некоторые из этих источников будут ограничивать вашу скорость на основе 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-адреса сервера вашего веб-приложения?


person yoga    schedule 06.11.2010    source источник


Ответы (1)


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

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

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

someFunctioName({ /* data object */ });
person Nick Craver    schedule 06.11.2010