Javascript 无法从python服务器读取响应

Javascript 无法从python服务器读取响应,javascript,python,html,Javascript,Python,Html,我正在编写一个简单的python服务器,并使用do_GET通过以下方式返回html from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler class RequestHandler(BaseHTTPRequestHandler): def _writeheaders(self): self.send_response(200) self.send_header('Content-type',

我正在编写一个简单的python服务器,并使用do_GET通过以下方式返回html

from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler

class RequestHandler(BaseHTTPRequestHandler):
   def _writeheaders(self):
       self.send_response(200)
       self.send_header('Content-type', 'text/html')
       self.end_headers()

   def do_HEAD(self):
       self._writeheaders()

   def do_GET(self):
       f = open("/full/path/to.html")
       self._writeheaders()
       self.wfile.write(f.read())


serveraddr = ('localhost', 7070)
srvr = HTTPServer(serveraddr, RequestHandler)
srvr.serve_forever()
在html中有一个

<html>
<head>
    <title>myChart</title>
    <meta charset="UTF-8">
</head>

<div >
    ...divs...
</div>


<script>

...js functions...

</script>

<body>

<script src="js/jquery-1.8.2.min.js" type="text/javascript"></script>


</body>
</html>

无论URL是
/
/index.HTML
/favicon.ico
,还是(在您的情况下)是
/js/jquery-1.8.2.min.js
,您的
请求处理程序将提供HTML页面。如果您希望
/js/jquery-1.8.2.min.js
再次提供实际的JavaScript文件而不是HTML页面,则需要特别处理,例如:

def do_GET(self):
    if self.path == '/js/jquery-1.8.2.min.js':
        filename = 'js/jquery-1.8.2.min.js'
    else:
        filename = 'index.html'
    with open(filename, 'r') as f:
        self._writeheaders()
        self.wfile.write(f.read())
您可能希望对此进行一点更改,以便请求JavaScript文件时提供适当的
内容类型:text/JavaScript
标题,而不是
内容类型:text/html
,并且
标题
返回与
GET
一致的标题,等等


此外,如果您开始为大型文件服务,您可能需要考虑使用从文件复制数据到<代码> Surviv.WFiels/Cord>,而不是将整个文件读入内存并将其全部写入。

似乎在第1行的“jQuyY1.82.M.js”文件中有一个“@daveoncode请查看我的更新以获取答案。有没有更好的方法将URL请求映射到
do_GET
,比如在Java中,我们使用
@RequestMapping('/xxx)
?@pledez:没有使用
BaseHTTPServer
模块,没有。也就是说,我不确定您的项目有多复杂,但是,如果它比这更复杂,那么可能值得研究一些提供这种功能的库,例如,似乎是一个相当流行的Python web框架。
def do_GET(self):
    if self.path == '/js/jquery-1.8.2.min.js':
        filename = 'js/jquery-1.8.2.min.js'
    else:
        filename = 'index.html'
    with open(filename, 'r') as f:
        self._writeheaders()
        self.wfile.write(f.read())