I am using ExtJS ajax to send a data request to geoserver (which is in another domain different from web server), codes are as follows:
Ext.Ajax.request({ //send data request
url : '../proxy.py?url=' + dataUrl,
method : 'GET',
headers: {
'Content-Type': 'application/json'
},
success : function(response, opts) {
var eventData = Ext.decode(response.responseText); //decode into JSON
//parse eventData
},
failure: function(response, opts){
Ext.Msg.alert("Failure", "Failed to retrieve event, please check service connection at " + dataUrl);
}
});
since it relates to cross-domain issue, we employed a python proxy at web server, and put the GeoServer domain into the accessible list. If I put the request url in browser then I can get the JSON response; however by using ajax call in code, we got following error:
<ows:Exception exceptionCode="MissingParameterValue" locator="request">
<ows:ExceptionText>Could not determine geoserver request from http request GET /geoserver/ows?service=WFS HTTP/1.1
Accept-Encoding: identity
Host: XXXX
Connection: close
User-Agent: Python-urllib/2.5
 
</ows:ExceptionText> </ows:Exception>
I searched online, somebody said it's an issue related with proxy and the request headers. however, no detailed solution is found yet. I hope someone here can help me out.
thanks a lot!
UPDATE: using escape() to escape the request URL!