环境:  服务器  geoserver2.4.1

开发机访问服务器发布的wms 存在跨域问题,研究两天终于找到解决方案。

主要思路是: 使用jquery的ajax 代替Groserver的request, 然后将wms的请求地址转发到.net的处理程序, 使用.net的处理程序进行跨域处理。

 function mouseClick(e) {var layer = new Array();layer = map.getLayersByName("Simple_Geometry");if (layer != null)for (var i = 0; i < layer.length; i++) {map.removeLayer(layer[i]);}var wms_url = "http://10.72.4.219:8089/geoserver/xj/wms?";var params ={REQUEST: "GetFeatureInfo",BBOX: map.getExtent().toBBOX(),WIDTH: map.size.w,HEIGHT: map.size.h,X: e.xy.x,Y: e.xy.y,SERVICE: "WMS",QUERY_LAYERS: map.layers[0].params.LAYERS,INFO_FORMAT: 'text/html',FEATURE_COUNT: 50,Layers: 'xj:cswl_group',Styles: "",format: "application/vnd.ogc.gml",EXCEPTIONS: "application/vnd.ogc.se_xml",                    // Exception 类型srs: 'EPSG:4326'};var domainUrl = "crossDomain.ashx?URL=";var request = parpreUrl(wms_url, params);request = encodeURIComponent(encodeURIComponent(request));$.post(domainUrl + request, "", function (e) {document.getElementById('nodelist').innerHTML = e;});OpenLayers.Event.stop(e);}function parpreUrl(url, paramsObj) {for (var k in paramsObj) {url += (k + "=" + paramsObj[k] + "&");}return url;}

如果使用Groserver.ProxyHost , 会遇到 triggerEvent未定义问题,所以使用了jqueyr的ajax代替 Geoserver.Request ,另外

 public void Proce***equest(HttpContext context){context.Response.ContentType = "text/html";string url = "";url = context.Request.QueryString["URL"].ToString();url = context.Server.UrlDecode(url);HttpWebRequest loHttp = (HttpWebRequest)WebRequest.Create(url);loHttp.Timeout = 10000;     // 10 secsloHttp.UserAgent = "Web Client";HttpWebResponse loWebResponse = (HttpWebResponse)loHttp.GetResponse();Encoding enc = Encoding.GetEncoding(65001);StreamReader loResponseStream = new StreamReader(loWebResponse.GetResponseStream(), enc);string lcHtml = loResponseStream.ReadToEnd();context.Response.Write(lcHtml);loWebResponse.Close();loResponseStream.Close();}

这样就可以解决 跨域问题

转载于:https://blog.51cto.com/hb407033/1433902

.net 访问 geoserver 发布的 wms   跨域问题解决方案相关推荐

  1. 解决Axios跨域问题(Axios跨域问题解决方案)

    问题背景 Axios是不允许跨域访问的,别说跨域,跨端口都不行.例如某项目我本地vue前端frontEnd为localhost:8889,Java后台 backEnd为localhost:8888 报 ...

  2. leaflet 加载 geoserver 发布的 wms 服务

    1. 安装 geoserver 服务:略 2. 启动 geoserver: 3. 登录 geoserver 控制台:( 默认账号.密码为 admin.geoserver ) 4. 新建工作区: 5. ...

  3. 在云服务器上注意GeoServer和ShadowDataMap的跨域设置

    在云服务器上注意GeoServer和ShadowDataMap的跨域设置 1.对于支持cors的网络资源 可以在ShadowDataMap的devserverconfig.json里设置相应的跨域资源 ...

  4. 一键部署开箱即用的代理服务器,解决 SAP UI5 应用开发过程中访问远端 OData 服务的跨域问题试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...

  5. geoserver安装及跨域问题解决方案

    下载geoserver安装包 GeoServer-geoserver-2.18.0-bin.zip 链接:https://pan.baidu.com/s/11IhKO3l84An-H0wt-mqZgw ...

  6. SAP UI5 初学者教程之二十五 - 使用代理服务器解决 SAP UI5 应用访问远端 OData 服务的跨域问题试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 初学者教程之一:Hello World SAP UI5 初学者教程之二:SAP UI5 ...

  7. mapbox 添加geoserver发布的wms服务及wms服务属性查询

    <!DOCTYPE html> <html><head><meta charset='utf-8' /><title>mapbox 添加 g ...

  8. html的页面怎样直接跨域访问,【HTML】iframe跨域访问问题

    概述 本地同一浏览器访问本地HTML文件和访问服务器端HTML文件,本地Iframe没有自适应高度,而服务器端的Ifrane自适应了高度. 1.问题重现: Chrome 版本 41.0.2272.10 ...

  9. Cesium加载geoserver发布的wms地图服务-设置BBOX参数无效

    一.问题描述: 地图服务是geoserver发布的wms地图服务,使用cesium加载渲染,加载代码如下. // Cesium加载wms var wms = new Cesium.WebMapServ ...

最新文章

  1. beego 获取字符串中的数据_MySQL中获取季度、年度等数据
  2. 听说微软出了个 Windows XP reStart Edition? 重启版?
  3. 联想发布首款自研工业机器人,用5G技术给国产大飞机喷漆
  4. 对一道面试题的总结与扩展思考(关于一笔画问题的数学分析)
  5. 信息系统项目管理师-人力资源管理知识点
  6. asp.net 异步群发邮件时遭遇到的问题 ddddddddd
  7. linux mysql多主一从_linux中mysql多主一从热备份
  8. iOS根据经纬度获得地理名称
  9. CppUnit源代码分析总结
  10. ORACLE sid,pid,spid总结
  11. 社交网络上的影响传播模型
  12. php?what=chinese,推荐4-ChineseUtil v1.1.2 发布,PHP 中文工具包
  13. Python调用IDM批量下载GOCI数据
  14. 183名中国学者入选2016全球高引作者榜 | 数据分析
  15. excel中实现多条件去重计数
  16. ES6模板字符串if语句判断
  17. linux驱动之输入子系统
  18. python导入wx_Python“导入wx”
  19. 解决出租屋网络故障的步骤及最佳组网方案
  20. Linux中fork函数详解

热门文章

  1. AI如何设计,才能人类利益最大化?
  2. 基于机器学习逻辑回归算法完成癌症病人的肿瘤是否良性的判断
  3. 外媒评李开复的《AI·未来》:四大浪潮正在席卷全球
  4. 中文分词jieba的简单使用
  5. conda-forge,conda,-c的理解
  6. 研究速递:预测学习——神经元高效运作的最佳策略
  7. 用半机械器官,打开发育生物学领域的黑匣子
  8. 新计算推动信息技术产业新发展?
  9. 人工智能:主导下一轮科技创新红利
  10. 亚马逊:从零售商向科技公司的质变