2013-07-02 50 views
1

我試圖在運行Windows 7 64位的python 3.x中製作一個簡單的http服務器。我在Mac上使用python 2.7時可以正常工作,並對升級到在Windows上運行的python 3.2進行了一些更改。Python 3.x SimpleHTTPRequestHandler不輸出任何迴應

查詢時,標題全部正確返回,但瀏覽器檢查器中沒有顯示任何內容 - 但是,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() 
+0

您是否注意到您的代碼使用字符進行了複製和粘貼?我剛剛編輯了您的問題(正在等待同行評議)來修復格式並從而恢復功能。 [編程python時永遠不要使用TAB。](http://stackoverflow.com/q/119562/923794) – cfi

+0

...並歡迎來到SO! :-D – cfi

回答

1

我固定它 - 它需要 「訪問控制允許來源」 頭相加:

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

- 沒有的伎倆!