diff --git a/src/webserver.py b/src/webserver.py index 7880b3b..b322a35 100644 --- a/src/webserver.py +++ b/src/webserver.py @@ -2,10 +2,10 @@ Basic web server / framework. """ -from SocketServer import ThreadingMixIn import BaseHTTPServer -import urlparse import cgi +import urlparse +from SocketServer import ThreadingMixIn class HTTPError(Exception): @@ -57,6 +57,18 @@ class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): environ={'REQUEST_METHOD': 'POST'}) self._call(self.path.strip('/'), params={'form_values': form_values}) + def do_OPTIONS(self): # pylint: disable=invalid-name + """ + Handle OPTIONS request and return CORS headers. + """ + self.send_response(200, 'ok') + self.send_header('Access-Control-Allow-Origin', '*') + self.send_header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS') + self.send_header('Access-Control-Allow-Headers', 'X-Requested-With') + self.send_header('Access-Control-Allow-Headers', 'Content-Type, ' + 'Authorization') + self.end_headers() + def _parse(self, reqinfo): """ Parse information from a request.