> 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

Reply via email to