亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

.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

福州市| 德保县| 慈利县| 五峰| 武强县| 宽甸| 黄石市| 乌兰察布市| 桑植县| 油尖旺区| 新余市| 英山县| 平陆县| 抚远县| 山丹县| 兰西县| 阿尔山市| 高要市| 西充县| 华亭县| 武功县| 图木舒克市| 临漳县| 攀枝花市| 刚察县| 中山市| 休宁县| 东乡族自治县| 北川| 安陆市| 前郭尔| 高要市| 红桥区| 通许县| 玛沁县| 榆树市| 万年县| 丹棱县| 延吉市| 西贡区| 井陉县|