【发布时间】:2020-02-08 19:01:44
【问题描述】:
我正在构建一个小型服务器,它使用 javascript 发送带有脚本的页面,当我尝试在浏览器中打开它时它可以工作,但是如果我从服务器请求页面,页面会被接收,但不是脚本,所以我得到这些错误:
文件之间缺少Script.js:
看起来很奇怪,因为从网络会话中我可以看到状态为 200 的脚本请求:
我试图添加的 js 文件是 Chart.js,所以我不能在内部添加它,它会变得无法使用它,但现在服务器只是 python 中的几行代码用SimpleHTTPRequestHandler,我估计要换了,可能是因为SimpleHTTPRequestHandler不能处理多个文件请求?
这是代码,试图制作一个sn-p,但它在那里也不起作用(可能只是我以前从未写过sn-p):
HTML:
<!doctype html>
<html>
<head>
<script src="script.js"></script>
</head>
<body>
<p id = "paragraph"></p>
<script>
document.getElementById('paragraph').innerHTML = sayHello();
</script>
</body>
</html>
JS:
function sayHello(){
return "HelloWorld!"
}
这是python服务器脚本:
from http.server import HTTPServer, BaseHTTPRequestHandler
class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.end_headers()
with open("index.html", "r") as page:
self.wfile.write(page.read())
httpd = HTTPServer(("192.168.1.100", 8000), SimpleHTTPRequestHandler)
httpd.serve_forever()
【问题讨论】:
-
您是否可能不小心将
<script>和</script>放入 您的script.js 文件中?如果是这样,请将它们删除。 -
顺便说一句,您可以将
<meta charset="utf-8">添加到您的<head>以消除字符编码错误。如果您正在寻找一个不错的 Python Web 框架,请尝试flask。 -
@ChrisG,不,我不是,这也只是一个例子,问题出在chart.js,肯定没有,无论如何感谢您的建议
-
我怀疑这是因为第 1 行中的
expected expression, got '<' error。不过,您应该将您的 python 代码添加到问题中,因为看起来这个问题主要是关于这个,而不是关于 JS。跨度> -
你的 python 服务器只返回 HTML 文件。这就是为什么您的 HTML 加载但您的 JavaScript 没有加载的原因。当请求 JavaScript 文件时,服务器返回导致
SyntaxError: expected expression, got '<'错误的 HTML 文件。