我正在使用SimpleHTTPServer测试我正在处理的某些网页。效果很好,但是我需要执行一些跨域请求。这需要使用允许页面访问的域设置Access-Control-Allow-Origin header 。

有没有一种简单的方法可以使用SimpleHTTPServer设置 header 并提供原始内容? header 在每个请求上都相同。

最佳答案

这有点麻烦,因为它会更改end_headers()的行为,但我认为它比复制和粘贴整个SimpleHTTPServer.py文件要好一些。

我的方法在子类中覆盖end_headers(),并在其中调用send_my_headers(),然后再调用父类(super class)的end_headers()

也不是1-2行,但少于20行。主要是样板。

#!/usr/bin/env python
import SimpleHTTPServer

class MyHTTPRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
    def end_headers(self):
        self.send_my_headers()

        SimpleHTTPServer.SimpleHTTPRequestHandler.end_headers(self)

    def send_my_headers(self):
        self.send_header("Access-Control-Allow-Origin", "*")


if __name__ == '__main__':
    SimpleHTTPServer.test(HandlerClass=MyHTTPRequestHandler)

关于python - 我可以使用python的SimpleHTTPServer设置 header 吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12499171/

10-11 07:42