zoukankan      html  css  js  c++  java
  • Asp.net页面中OpenLayers跨域访问GeoServer时用代理

    在asp.net页面中通过OpenLayers访问GeoServer的WMS与WFS服务,因为GeoServer都是运行在tomcat服务器上,所以,AJAX机制访问时,受到浏览器的限制,这就是跨域访问的问题。
    这个方法可以解决,在.net的WEB项目中添加一个aspx页面GeoServerProxy.aspx,并将页面中的html都删除,在后台添加代码:

    if (Page.Request.QueryString["URL"] != null)
            {
                string url = "";
                url = Page.Request.QueryString["URL"].ToString();
                HttpWebRequest loHttp =(HttpWebRequest)WebRequest.Create(url);
                loHttp.Timeout = 10000;     // 10 secs
                loHttp.UserAgent = "Web Client";
                HttpWebResponse loWebResponse = (HttpWebResponse)loHttp.GetResponse();
                Encoding enc = Encoding.GetEncoding(65001); 
                StreamReader loResponseStream =new StreamReader(loWebResponse.GetResponseStream(), enc);
                string lcHtml = loResponseStream.ReadToEnd();
                Response.Write(lcHtml);
                loWebResponse.Close();
                loResponseStream.Close();
            }

    在 OpenLayers中,JS中需要这样写
    OpenLayers.ProxyHost = 'GeoServerProxy.aspx?URL=';

  • 相关阅读:
    求逆元算法
    Almost Sorted Array
    最长不递减子序列
    (LIS)最长上升序列(DP+二分优化)
    rabbitmq延迟消息
    oracle 视图
    oracle 存储过程
    http 会话(session)详解
    系统测试
    Fiddler 手机抓包
  • 原文地址:https://www.cnblogs.com/jason819/p/3129349.html
Copyright © 2011-2022 走看看