0

我可能没有正确构建查询。所以让我解释一下我面临的问题。

环境
我有一个响应 http API 调用的服务器。进行此调用的客户端是另一台服务器上的 html 文件。所以这是一个跨域调用。该功能按预期工作。

问题
在我的 webapp(tomcat servlet)上,我希望能够获取客户端的域名,进行此调用

示例
如果http://abc.com/crossDomainCall.html正在对我的服务器进行跨域调用,我希望能够看到它是 abc.com

我尝试过的
我尝试过 request.getRemoteAddr() 和 request.getRemoveHost()
但他们正在返回当时正在为 HTML 提供服务的服务器地址。不是托管 html (abc.com) 的服务器地址

对此的任何指示,将不胜感激。

干杯,
罗希特什

编辑1
正如@gigadot 回答的那样,使用HTTP Header 中的'referer' 对我有用。但这并不是万无一失的。所以,我的问题是,像谷歌地图这样的服务是如何做到这一点的?我知道,他们需要将 API 密钥与已注册该密钥的相应域进行比较。那么,他们如何验证这样的事情呢?

4

2 回答 2

1

尝试在请求中获取引用者标头。这是您最好的选择,因为实际调用是由客户端(用户或网络浏览器)进行的,因此不可能总是得到这个。但是,推荐人标头并不总是由客户端 Web 浏览器发送。

于 2012-09-06T13:53:27.993 回答
0

这是一个跨站 ajax 请求,根本不可能。

用于$.getJSON()检索您的跨站点 JSON 响应,您是否看过http://api.jquery.com/jQuery.getJSON

于 2012-09-07T10:15:18.107 回答