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

Если ваше веб-приложение использует вызовы 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-адрес сервера веб-приложения?

1 Ответ

7 голосов
/ 06 ноября 2010

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

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

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

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