2

如果您的 Web 应用程序使用对外部源的 Web 服务 API 调用,其中一些源将根据 IP 地址对您进行速率限制

如果您从客户端 JavaScript进行这些调用——这意味着它们是由最终用户的浏览器操作触发的——远程站点(发送回 JSON 数据)是否会看到您站点的 IP 地址或终端的 IP 地址-user (出于此基于 IP 地址的速率限制的目的)?

我的理解是,通过&callback=在数据源URL中使用,你会发出一个JSONP请求,这意味着远程主机看到的地址是最终用户的地址,而不是你站点的地址

例如:

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

像上面这样的调用会被视为来自最终用户的 IP 地址而不是来自您的 Web 应用程序的服务器 IP 地址,这是否正确?

4

1 回答 1

7

他们看到最终用户的 IP,JSONP 请求直接从用户的浏览器发送到它指向的 URL。通过进行 JSONP 调用,您基本上所做的就是将其添加到页面中:

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

这使得浏览器只需获取并运行具有以下内容的脚本:

someFunctioName({ /* data object */ });
于 2010-11-06T14:38:00.957 回答