gpt4 book ai didi

java - Tomcat 中的 Geoserver 跨域

转载 作者:行者123 更新时间:2023-11-28 22:20:42 25 4
gpt4 key购买 nike

我的 Geoserver 在地址为 http://localhost:8888 的 Tomcat 上运行,我有一个 JSP 应用程序在地址为 http://localhost:8080< 的 Tomcat 上运行 使用 OpenLayers API。

我需要使用 OpenLayers 向托管在 Tomcat 8888 端口的 Geoserver 发出 WFS 请求,假设我的应用程序在端口 8080 上。

可以跨域请求吗?因为我的请求被 Geoserver 拒绝了。

最佳答案

是的,可以对地理服务器进行跨域请求。但是,您需要拥有或编写代理脚本或服务。在旧版本的 Geoserver 中有代理服务。但是,这对您没有帮助,因为您需要让服务在运行需要跨域访问的应用程序运行的同一个 tomcat 实例中运行。

您可以使用 jsp 脚本来执行您需要的操作。我过去用过一个看起来像 this 的东西.请注意,这种代理脚本具有安全隐患。给出的示例没有任何安全预防措施,熟练的黑客可以使用它对您的网站进行脚本攻击。如果这将是生产服务器或面向公共(public)互联网,请放置一些过滤器来限制代理脚本可以访问的位置和站点。

为了使用此脚本,您需要修改 jsp 应用程序查找地理服务器应用程序的位置并进行更改。所以不用

String Geoserver_Address = "http://localhost:8888/geoserver/ows"

你会把

String Geoserver_Address = "http://localhost:8080/Application/ProxyScript.jsp?http://localhost:8888/geoserver/ows

还值得注意的是,导致跨域限制的不是 Geoserver,而是大多数浏览器内置的安全功能。当尝试从跨域加载代码或不支持的格式时,这是一个相当常见的问题。请看herehere获取更多信息。

关于java - Tomcat 中的 Geoserver 跨域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21438137/

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