2013-07-02 7 views
1

Windows 7 64 비트에서 실행되는 Python 3.x에서 간단한 http 서버를 만들려고합니다. 필자는 Mac에서 python 2.7에서이 작업을 잘 수행했으며 Windows에서 실행되는 python 3.2로 업그레이드하기 위해 몇 가지 변경 작업을 수행했습니다.Python 3.x SimpleHTTPRequestHandler가 응답을 출력하지 않습니다.

쿼리 할 때 헤더가 모두 올바르게 반환되지만 브라우저 속성에 내용이 표시되지 않습니다. 텔넷이 응답이 완전히 수신되고 있음을 나타냅니다.

브라우저에 표시되지 않는 이유는 무엇입니까? 도움!

코드는 다음과 같습니다

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

자를 사용하여 코드가 복사 및 붙여 넣기되었음을 확인 했습니까? 방금 귀하의 질문을 수정하여 (동료 검토 대기 중) 형식을 수정하여 기능을 복원했습니다. [절대로 파이썬을 프로그래밍 할 때 TAB을 사용하지 마십시오.] (0120-365-981) – cfi

+0

... 그리고 오신 것을 환영합니다! :-디 – cfi

답변

1

내가 그것을 고정 - 그것은 "액세스 제어 - 허용 - 원산지를"헤더를 추가 할 필요가있다 :

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

이 - 속임수를 썼는지!