我试图在不使用框架的情况下仅使用普通 Python 托管网页,但遇到了一些问题。我正在使用 SimpleHTTPRequestHandler 并且能够让我的 index.html 在本地主机上运行。当我尝试使用 socketio 时,问题就开始了。加载网页时,我不断收到 404 错误:
"GET /socket.io/?EIO=4&transport=polling&t=Nrqja3L HTTP/1.1" 404 -
code 404, message File not found
我试着环顾四周,首先认为这是与 CORS 相关的问题,所以我尝试修复它,但这似乎没有帮助。我可能做错了。我在这个问题上已经有一段时间了,我不确定还有什么可以尝试的,所以我希望能得到一些帮助。
后端.py:
import socketio
import http.server
# standard Python
sio = socketio.AsyncClient()
PORT = 8080
DIRECTORY = "./index.html"
class Serv(http.server.SimpleHTTPRequestHandler):
def doGet(self):
self.path = DIRECTORY
self.send_response(200)
self.send_header("Access-Control-Allow-Origin", "*")
self.send_header("Access-Control-Allow-Methods", "GET")
self.end_headers()
handler = Serv
handler.extensions_map.update({
".js": "application/javascript",
})
httpd = http.server.HTTPServer(('localhost',8080), handler)
httpd.serve_forever()
索引.html:
test
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.0.1/socket.io.js" integrity="sha512-q/dWJ3kcmjBLU4Qc47E4A9kTB4m3wuTY7vkFJDTZKjTs8jhyGQnaUrxa0Ytd0ssMZhbNua9hE+E7Qv1j+DyZwA==" crossorigin="anonymous"></script>
<script>
sio = io()
</script>