在我的GitHub项目中,目前存在一个由Python 3.3.1引起的问题。我使用的Python内置HTTP服务器似乎将标头作为正常输出发送。当我测试它时,它没有问题,但在用户计算机上存在问题。我无法重现这个问题,所以我想知道Python 3.3.1中是否存在导致标题问题或者源代码中存在问题的错误。
由于标题未正确发送,因此HTML等无效并且不会显示为HTML,因为浏览器无法获取内容类型的标题。
答案 0 :(得分:2)
我刚发现了这个问题。似乎> = 3.3.x之后的Python版本需要在第一个标头之前发送状态代码。否则,标头将作为正常输出处理。所以我换了它,现在它可以工作了。以下只是一个例子:
不起作用:
self.send_header('Content-type', 'text/html')
self.send_response(200)
使用:
self.send_response(200)
self.send_header('Content-type', 'text/html')
顺便说一句:Internet Explorer没有这个问题。但当然HTTP规范要求在标头之前发送状态。但早期的Python版本能够处理它。这就是我第一次尝试时无法重现问题的原因。