概述
在使用OpenLayers过程中,若在IIS下部署,需要在IIS启用CGI,当前以IIS7为例进行介绍如何来启用CGI和相关的设置。启用CGI的目的是使用WFS的前提,因为WFS在请求过程中会出现跨域问题,所以根据OpenLayers的建议,只需要使用其自带的代理CGI。
1. 安装python
由于OpenLayers下的默认内置CGI是python实现的,所有要在机器上预先安装python运行环境,关于其安装,本文也不过多介绍,可以去官网http://www.python.org上下载安装即可。
2. 启用CGI
关于如下在IIS7中启用CGI,请参考本人前面的博文《在IIS7中启用CGI》,里面已做详细介绍,在此不做赘述,最终设置如下图。
3. 添加代理域
打开OpenLayers下的proxy.cgi,前部分代码如下:
- #!/usr/bin/env python
- """This is a blind proxy that we use to get around browser
- restrictions that prevent the Javascript from loading pages not on the
- same server as the Javascript. This has several problems: it's less
- efficient, it might break some sites, and it's a security risk because
- people can use this proxy to browse the web and possibly do bad stuff
- with it. It only loads pages via http and https, but it can load any
- content type. It supports GET and POST requests."""
- import urllib2
- import cgi
- import sys, os
- # Designed to prevent Open Proxy type stuff.
- allowedHosts = ['www.openlayers.org', 'openlayers.org',
- '192.168.0.201:8088',
- 'labs.metacarta.com', 'world.freemap.in',
- 'prototype.openmnnd.org', 'geo.openplans.org',
- 'sigma.openplans.org', 'demo.opengeo.org',
- 'www.openstreetmap.org', 'sample.avencia.com']
- method = os.environ["REQUEST_METHOD"]
- # ...
python变量allowedHosts中,默认已添加了openlayers相关的网站域名,在实际应用过程中,本人的GeoServer的IP为192.168.0.201:8088,将其添加到其中即可。
4. 指定代理地址
在openlayers在使用wfs时,只需要添加如下一行代码即可,proxy.cgi的路径可以跟据实际情况来指定,由于本人实际应用中,是将proxy.cgi放在当前程序的相同目录。
- OpenLayers.ProxyHost = "proxy.cgi?url=";
P.S. 设置比较简单,持续应用中。
转载于:https://blog.51cto.com/pengjh/621188
最后
以上就是奋斗乌龟为你收集整理的OpenLayers基础:在IIS中部署并启用CGI的全部内容,希望文章能够帮你解决OpenLayers基础:在IIS中部署并启用CGI所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复