【发布时间】:2021-09-04 09:56:41
【问题描述】:
我正在尝试学习 Socket.io,但我无法制作一个有效的项目,因为我制作的每个项目都有一个 MIME 类型不匹配。
错误: 由于 MIME 类型(“text/html”)不匹配(X-Content-Type-Options: nosniff),来自“http://localhost:5500/socket.io/socket.io.js”的资源被阻止。
为了测试这一点,我从 Github 找到了一个可以工作的聊天应用程序项目,并测试了该代码并遇到了同样的问题。该代码可以在以下位置找到:https://github.com/bradtraversy/chatcord
代码似乎正确地创建了一个 socket.io 实例:
const app = express();
const server = http.createServer(app);
const io = socketio(server);
// Set static folder
app.use(express.static(path.join(__dirname, 'public')));
...
const PORT = process.env.PORT || 3000;
server.listen(PORT, () => console.log(`Server running on port ${PORT}`));
HTML将JS与线连接起来:
<script src="/socket.io/socket.io.js"></script>
此 MIME 类型消息后跟有关客户端代码的“io is not defined”错误:
const socket = io();
这种 MIME 类型出现在 Firefox 上,但不在 Chrome 上,它不会而且只会给出 404 未找到。我不知道这是否只是浏览器的差异。
【问题讨论】:
-
我检查了您的存储库,运行了代码,但无法重现问题。错误没有发生,URL解析为一些JS。可能是你编辑完代码忘记重启服务器了,可能需要清除浏览器缓存。
标签: javascript node.js socket.io mime-types