如果您使用(&callback =)对受IP地址限制速率的网站进行客户端getJSON()调用,他们是否会看到您的网站或最终用户?

yog*_*oga 2 jquery json jsonp ip-address rate-limiting

如果您的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);
});
Run Code Online (Sandbox Code Playgroud)

如上所述的呼叫会被视为来自最终用户的IP地址而不是来自您的Web应用程序的服务器IP地址,这是否正确?

Nic*_*ver 7

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

<script type="text/javascript" src="url?callback=someFunctionName"></script>
Run Code Online (Sandbox Code Playgroud)

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

someFunctioName({ /* data object */ });
Run Code Online (Sandbox Code Playgroud)