【问题标题】:Python 3.x SimpleHTTPRequestHandler not outputting any responsePython 3.x SimpleHTTPRequestHandler 不输出任何响应
【发布时间】:2013-07-02 20:26:33
【问题描述】:

我正在尝试在 Windows 7 64 位上运行的 python 3.x 中创建一个简单的 http 服务器。我在 Mac 上的 python 2.7 上运行良好,并进行了一些更改以升级到在 Windows 上运行的 python 3.2。

查询时,所有标头都正确返回,但浏览器检查器中没有显示任何内容 - 但是 telnet 显示响应已被完全接收!

为什么它不显示在浏览器中?帮助!

代码是:

import sys

import http.server
from http.server import HTTPServer
from http.server import SimpleHTTPRequestHandler
import usb.core

class MyHandler(SimpleHTTPRequestHandler):

    def __init__(self,req,client_addr,server):
        SimpleHTTPRequestHandler.__init__(self,req,client_addr,server)      

    def do_GET(self):
        r="<h1>Hello World</h1>"
        self.send_response(200)
        self.send_header("Content-type", "application/json;charset=utf-8")

        self.send_header("Content-length", len(r))
        self.end_headers()
        self.wfile.write(r.encode("utf-8"))
        self.wfile.flush()
        print(r)

HandlerClass = MyHandler
Protocol     = "HTTP/1.1"
port = 80

server_address = ('localhost', port)

HandlerClass.protocol_version = Protocol

try:
    httpd = HTTPServer(server_address, MyHandler)
    print ("Server Started")
    httpd.serve_forever()
except KeyboardInterrupt:
    print('Shutting down server')
    httpd.socket.close()

【问题讨论】:

  • 您是否注意到您的代码是使用 字符复制和粘贴的?我刚刚编辑了您的问题(等待同行评审)以修复格式并恢复功能。 Never ever use TABs when programming python.
  • ...欢迎来到 SO! :-D

标签: ajax windows python-3.x simplehttpserver


【解决方案1】:

我已修复它 - 它需要添加“Access-Control-Allow-Origin”标题:

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

-- 成功了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 2020-01-04
    • 2019-07-14
    • 2016-10-17
    相关资源
    最近更新 更多