> Did u mean that I should have my py script to which I making the AJAX > request in the same dir? Then I already have. Only issue is that, the > script is running on port 9000 > (http://128.196.142.94:9000/info?lat=53.33935546875&lon=-121.99951171875). > So the domain is same but the ports are different. If ports are different, then its cross-domain. http://en.wikipedia.org/wiki/Same_origin_policy
> > check that the passed URL is reasonable for the application to call > > I was able to call py script url (wget > "http://128.196.142.94:9000/info?lat=53.33935546875&lon=-121.99951171875" > -o test.1.log -O test.1), u can run this on terminal and it should > fetch you the JSON. Then call it via a proxy. XHR has the very tight rules for a good reason. By trying to fight browser security, you are on just making life difficult for yourself. > > So, after this, how should I complete the other two parts? > > 2/ Open an http connection to the passed page > 3/ pipe the page content as output. This is dependent on what your server and servlet container is. I use tomcat and so I have a proxy.jsp to do the work. Source code for white-list proxies are on the net. After checking the IP is okay (involved for my case), then the jsp code is: if (okFlag) { BufferedReader brrr = request.getReader(); String s; StringBuffer postContent = new StringBuffer(); while((s = brrr.readLine()) != null) postContent.append(s); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); if (postContent.length() > 0) { connection.setUseCaches(false); connection.setRequestMethod("POST"); connection.setDoInput(true); connection.setDoOutput(true); connection.setRequestProperty("Content-Type", "application/xml"); OutputStreamWriter wr = new OutputStreamWriter(connection.getOutputStream()); wr.write(postContent.toString()); wr.flush(); wr.close(); } String contentType = connection.getContentType(); if ("application/vnd.ogc.wms_xml".equals(contentType)) contentType = "text/xml"; response.setContentType(contentType); InputStream input = connection.getInputStream(); BufferedInputStream bis = new BufferedInputStream(input); ByteArrayOutputStream buf = new ByteArrayOutputStream(); int result = bis.read(); while (result != -1) { byte b = (byte)result; buf.write(b); result = bis.read(); } %><%=buf.toString()%><% } else { %>Access to <%=urlString%> prohibited<% } You should seek help on writing/getting a proxy from user groups dedicated to your particular server arrangement. I cant help you there. Notice: This email and any attachments are confidential. If received in error please destroy and immediately notify us. Do not copy or disclose the contents. _______________________________________________ Users mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/openlayers-users
