Skip to content

Instantly share code, notes, and snippets.

@takei-shg
Created June 5, 2014 01:16
Show Gist options
  • Save takei-shg/df706f3ebe02e5b254e0 to your computer and use it in GitHub Desktop.
Save takei-shg/df706f3ebe02e5b254e0 to your computer and use it in GitHub Desktop.
A Wrapper impl of SimpleHTTPServer - with CORS and header settable.
#!/usr/bin/env python
import SimpleHTTPServer
import BaseHTTPServer
import sys
""" A Wrapper impl of SimpleHTTPServer - with CORS and header settable.
Usage:
python ${dir}/cors-server.py ${port} ${headers in key:value format}
ex. python ~/cors-server.py 9999 'expires':'Sat, 28 May 2044 07:49:43 GMT'
Notice:
Server returns HTTP/1.1. Default SimpleHTTPServer returns HTTP/1.0.
"""
class CorsHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def end_headers(self):
self.send_new_headers()
SimpleHTTPServer.SimpleHTTPRequestHandler.end_headers(self)
def send_new_headers(self):
print sys.argv[2:]
for i in sys.argv[2:]:
key, value = i.split(":", 1)
self.send_header(key, value)
self.send_header("Access-Control-Allow-Origin", "*")
if __name__ == '__main__':
BaseHTTPServer.test(HandlerClass=CorsHTTPRequestHandler, ServerClass = BaseHTTPServer.HTTPServer, protocol="HTTP/1.1")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment