This is a bit of a hack because it changes end_headers()
behavior, but I think it's slightly better than copying and pasting the entire SimpleHTTPServer.py
file.
My approach overrides end_headers()
in a subclass and in it calls send_my_headers()
followed by calling the superclass's end_headers()
.
It's not 1 - 2 lines either, less than 20 though; mostly boilerplate.
#!/usr/bin/env python
try:
from http import server # Python 3
except ImportError:
import SimpleHTTPServer as server # Python 2
class MyHTTPRequestHandler(server.SimpleHTTPRequestHandler):
def end_headers(self):
self.send_my_headers()
server.SimpleHTTPRequestHandler.end_headers(self)
def send_my_headers(self):
self.send_header("Access-Control-Allow-Origin", "*")
if __name__ == '__main__':
server.test(HandlerClass=MyHTTPRequestHandler)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…