Skip to content Skip to sidebar Skip to footer

Having Trouble Getting Simplehttprequesthandler To Respond To Ajax

I recently tried implementing the SimpleHTTPRequestHandler to accept AJAX requests according to this. Although everything seems to work as far as receiving the request from the cli

Solution 1:

Make sure your response has a send_header() with a content type. I have seen AJAX requests get confused without this. You can also try switching your POST to a GET for debugging and make sure the browser can see the content.

Here is a simple HTTP example for returning XML if you point your query or browser to 127.0.0.1/test:

import SimpleHTTPServer, SocketServer
import urlparse

PORT = 80classMyHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
   defdo_GET(self):

       # Parse query data & params to find out what was passed
       parsedParams = urlparse.urlparse(self.path)
       queryParsed = urlparse.parse_qs(parsedParams.query)

       # request is either for a file to be served up or our testif parsedParams.path == "/test":
          self.processMyRequest(queryParsed)
       else:
          # Default to serve up a local file 
          SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self);

   defprocessMyRequest(self, query):

       self.send_response(200)
       self.send_header('Content-Type', 'application/xml')
       self.end_headers()

       self.wfile.write("<?xml version='1.0'?>");
       self.wfile.write("<sample>Some XML</sample>");
       self.wfile.close();

Handler = MyHandler

httpd = SocketServer.TCPServer(("", PORT), Handler)

print"serving at port", PORT
httpd.serve_forever()

Post a Comment for "Having Trouble Getting Simplehttprequesthandler To Respond To Ajax"