91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.net 訪問 geoserver 發布的 wms   跨域問題解決方案

發布時間:2020-08-15 23:41:48 來源:網絡 閱讀:2290 作者:hb407033 欄目:編程語言

環境:  服務器  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 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();
            context.Response.Write(lcHtml);
            loWebResponse.Close();
            loResponseStream.Close();
        }


這樣就可以解決 跨域問題

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

彭阳县| 莒南县| 石景山区| 安陆市| 东方市| 阿拉尔市| 崇信县| 宁夏| 铜山县| 泰来县| 永春县| 舞阳县| 左云县| 县级市| 宝清县| 伊吾县| 通城县| 会昌县| 民权县| 林芝县| 绍兴市| 永川市| 铁岭县| 德阳市| 东丰县| 南澳县| 丹寨县| 锦州市| 林口县| 石台县| 富源县| 贵港市| 华阴市| 班戈县| 察哈| 四川省| 惠来县| 张家港市| 晋江市| 固原市| 闵行区|