I got the typical cross-domain problem when access to WFS layer by using openlayers,

XMLHttpRequest cannot load http://XXXX/geoserver/ows?service=WFS. Origin http://XXXX is not allowed by Access-Control-Allow-Origin.

I did some research about how to handle this. it seems that a web proxy solution is a good. so I edited a proxy.py file, and put it at the root of my IIS server. however, it seems that I need to explicitly put the following code somewhere:

Openlayers.ProxyHost = "/cgi-bin/proxy.py?url" 

but I don't know where to put. If I put like below:

var map;
Openlayers.ProxyHost = "/cgi-bin/proxy.py?url" 

   //more code

It will popup an error saying "OpenLayers is not recognized".

Any hints? thank you all!

1 Answer 1


You should put that line after you load the Open Layers javascript file(s) and before you start creating your map

<script src='/path/to/openlayers.js' />
      alert('woo hoo! Open layers object is now loaded'); 
      Openlayers.ProxyHost = "/cgi-bin/proxy.py?url";
      // you shouldn't be seeing this if OL path is correct
      alert('uh-oh! where's my Open Layers object??'); 
  • i realized i just made a stupid mistake.. but anyway, i solved it now..thanks buddy.
    – Simon
    Aug 11, 2011 at 17:57
  • Ohhh, I think I see it now too. Was it just lower case "L" in OpenLayers vs Openlayers?! Ouch :) Well, either way glad it's working now. Next time please post what your own solution was if the one on the board wasn't it.
    – Vadim
    Aug 11, 2011 at 22:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.