使用fetch api,POST请求花费的时间太长

时间:2017-10-21 03:24:20

标签: javascript python-3.x http fetch-api

我在python3中使用http.server开发了http服务器。

我遇到的问题是没有发送post响应,所以浏览器继续加载太多时间。 哪一方(服务器或浏览器)导致此问题? 以及如何修复它?

Python3.6.3
macOS 10.13

import http.server

class MyHandler(http.server.BaseHTTPRequestHandler):
    protocol_version = "HTTP/1.1"
    def do_POST(self):
        # Now this method just print path and content-type.
        print("POSTED")
        content_type = self.headers["Content-Type"]
        print(content_type)
        print(self.path)
        if "multipart/form-data" in content_type:
            raw_data = self.rfile.read()
        self.send_response(200, self.responses[200][0])
        self.send_header("access-control-allow-origin", "*")
        self.send_header("connection", "close")
        self.end_headers()
        # WIP: do something...

    def do_GET(self):
        if self.path[0] == "/":
            self.path = self.path[1:]
        try:
            with open(self.path, "rb") as f:
                file_data = f.read()
        except FileNotFoundError:
            self.send_response(404, self.responses[404][0])
            self.end_headers()
            return
        content_length = len(file_data)
        self.send_response(200, self.responses[200][0])
        self.send_header("content-length", content_length)
        self.end_headers()
        self.wfile.write(file_data)

    def parse_post():
        # WIP
        pass

httpd = http.server.HTTPServer(("", 6788), MyHandler)
print("Address:", "", "Port:", 6788)
httpd.serve_forever()

浏览器js:

let formdata = new FormData();
formdata.append("Hello", "World");
fetch("http://localhost:6788/nk", {
    method: "post",
    mode: "cors",
    body: formdata,
})

0 个答案:

没有答案