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

时间:2010-11-06 14:36:24

标签: jquery json ip-address jsonp rate-limiting

如果您的网络应用使用对外部来源的网络服务API调用,则其中一些来源会根据IP地址对您进行速率限制

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

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

例如:

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

上述呼叫会被视为来自最终用户的IP地址而不是来自您的网络应用的服务器IP地址,这是否正确? < / p>

1 个答案:

答案 0 :(得分:7)

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

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

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

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