如何为本地 python3 http.server 启用 CORS?

如何为本地 python3 http.server 启用 CORS?

我在我的 Ubuntu 上有一个运行本地服务器,使用 python3 -m http.server 8080 --bind 127.0.0.1。

是否有一个标志可以传递以启用 CORS?

非常感谢...

答案1

嗨,我最近发现了一个更接近的代码示例。

#!/usr/bin/env python3

# It's python3 -m http.server PORT for a CORS world

from http.server import HTTPServer, SimpleHTTPRequestHandler
import sys


class CORSRequestHandler(SimpleHTTPRequestHandler):
    
    def end_headers(self):
        self.send_header('Access-Control-Allow-Origin', '*')
        self.send_header('Access-Control-Allow-Methods', '*')
        self.send_header('Access-Control-Allow-Headers', '*')
        self.send_header('Cache-Control', 'no-store, no-cache, must-revalidate')
        return super(CORSRequestHandler, self).end_headers()

    def do_OPTIONS(self):
        self.send_response(200)
        self.end_headers()

host = sys.argv[1] if len(sys.argv) > 2 else '0.0.0.0'
port = int(sys.argv[len(sys.argv)-1]) if len(sys.argv) > 1 else 8080

print("Listening on {}:{}".format(host, port))
httpd = HTTPServer((host, port), CORSRequestHandler)
httpd.serve_forever()

将以上内容保存到文件中,例如cors_server.py

现在你可以像这样使用 python cors_server.py 8080

致谢: https://fpira.com/blog/2020/05/python-http-server-with-cors

相关内容