gpt4 book ai didi

java - 跨域调用如何获取客户端域名

转载 作者:行者123 更新时间:2023-12-01 15:11:23 25 4
gpt4 key购买 nike

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

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

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

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

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

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

干杯,
罗希特什

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

最佳答案

尝试在请求中获取引用 header 。这是你最好的选择,因为实际的调用是由客户端(用户或网络浏览器)进行的,所以不可能总是得到这个。但是,Referrer header 并不总是由客户端 Web 浏览器发送。

关于java - 跨域调用如何获取客户端域名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12301314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com