如果您的网络应用使用对外部来源的网络服务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>
答案 0 :(得分:7)
他们看到最终用户的IP,JSONP请求直接从用户的浏览器转到它指向的URL。通过进行JSONP调用,您基本上要做的就是将其添加到页面中:
<script type="text/javascript" src="url?callback=someFunctionName"></script>
这使得浏览器只需获取并运行具有以下内容的脚本:
someFunctioName({ /* data object */ });