BaseHTTPRequestHandler doPOST方法不更新html?

时间:2017-01-27 09:20:37

标签: javascript python server

我正在尝试使用python 3.6来获得一个简单的本地服务器。

我启动HTTPServer并传递BaseHTTPRequestHandler。 do_GET()方法工作正常。它服务于执行POST请求的javascript文件。

do_POST()方法执行为"在post"打印出来。但是我没有在浏览器中看到输出写入self.wfile.write()。

我错过了什么吗?

from http.server import HTTPServer, BaseHTTPRequestHandler
import json

HOST, PORT = '', 8888
print("Serving HTTP on port %s." % PORT)


class Handler(BaseHTTPRequestHandler):
    def do_POST(self):
        """
        Respond to POST request.
        """

        print("In post")

        self.send_response(200)  # OK
        self.send_header('Content-type', 'text')
        self.end_headers()

        cont = b"post"
        self.wfile.write(cont)

    def do_GET(self):
        """Respond to a GET request."""
        self.send_response(200)

        if self.path == "/":
            self.send_header("Content-type", "text/html")
            self.end_headers()
            path = "index.html"
        else:
            self.send_header("Content-type", "application/javascript")
            self.end_headers()
            path = self.path[1:]
        f = open(path, "rb")
        cont = f.read()
        self.wfile.write(cont)
        f.close()

http = HTTPServer((HOST, PORT), Handler)
http.serve_forever()

1 个答案:

答案 0 :(得分:1)

如果Javascript文件正在执行POST请求,那么可能是您正在执行Ajax请求。同样的JS脚本需要实际做一些响应; Ajax的重点在于它不会自动刷新页面。