分享

OpenLayers之跨域

 LibraryPKU 2013-10-06
最近在工作中使用 OpenLayers 进行开发,遇到的第一个问题就是使用 OpenLayers 访问 WFS 服务的时候存在跨域问题,经查资料得知必须使用设置代理的方法才能正常使用。经过几番测试,终于成功,现分享一下。

    容器环境:Tomcat 7.x

    应用:testmap

    测试环境:OpenLayers写的应用testmap部署在 Tomcat下(http://127.0.0.1:8080/testmap/mymap.jsp),

要访问的WFS服务位于远程服务器(http://192.168.0.145:20000/geoserver/wfs),此时必须使用代理才能正常访问,下面讲述testmap应用添加proxy.cgi代理支持。

    1.打开下载的 OpenLayers\examples\ 目录,找到 proxy.cgi 文件,在应用 testmap 的 \WEB-INF\ 目录中新建文件夹 cgi (即:\WEB-INF\cgi),将 proxy.cgi 文件拷贝至此文件夹下。OpenLayers之跨域

    2.编辑 proxy.cgi 文件,在 allowedHosts 数组段最后添加远程地址,此文为 '192.168.0.145:20000'。

OpenLayers之跨域

    3.安装 python27 ,记得安装路径(本文为:E:/Python27/)。(本人测试多个版本,其他版本未能成功使用代理,python27 则成功,也不知为何,暂时先这样吧)

    4.在 testmap 应用的 WEB.xml 文件内添加如下内容:

OpenLayers之跨域
OpenLayers之跨域

    5.修改本机 Tomcat 的 Tomcat/conf/context.xml 文件。(Context 标签里添加 privileged="true")OpenLayers之跨域

    6.运行测试,本机应用 testmap 部署为 http://127.0.0.1:8080/testmap/ 。浏览器访问

http://127.0.0.1:8080/testmap/cgi/proxy.cgi ,正常情况下反馈的是OpenLayers的主页。

    7.在 js 中使用代理时,在 script 开始的地方添加 OpenLayers.ProxyHost = "cgi/proxy.cgi?url=" 。

    上述内容是本人根据资料亲自测试成功得到,能够有效解决跨域问题。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多