環(huán)境: 服務(wù)器 geoserver2.4.1

創(chuàng)新互聯(lián)專注于友好網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供友好營銷型網(wǎng)站建設(shè),友好網(wǎng)站制作、友好網(wǎng)頁設(shè)計、友好網(wǎng)站官網(wǎng)定制、小程序定制開發(fā)服務(wù),打造友好網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供友好網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
開發(fā)機訪問服務(wù)器發(fā)布的wms 存在跨域問題,研究兩天終于找到解決方案。
主要思路是: 使用jquery的ajax 代替Groserver的request, 然后將wms的請求地址轉(zhuǎn)發(fā)到.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();
}這樣就可以解決 跨域問題
名稱欄目:.net訪問geoserver發(fā)布的wms 跨域問題解決方案
本文路徑:http://www.chinadenli.net/article32/gpissc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站排名、網(wǎng)站設(shè)計公司、全網(wǎng)營銷推廣、網(wǎng)站維護、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)