Refused to load the script 'https://cdn.socket.io/4.5.4/socket.io.min.js' because it violates the following Content Security Policy directive: "script-src 'self'". Note that 'script-src-elem' was not explicitly set, so 'script
<head>
<title>Socket.IO chat</title>
<meta http-equiv="Content-Security-Policy" content="script-src-elem 'self' https://cdn.socket.io; connect-src 'self' https://cdn.socket.io;">
</head>
我确实在我的html的头部添加了这个,但在浏览器控制台它显示了上述错误。
我也试过这个
<head>
<title>Socket.IO chat</title>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' https://cdn.socket.io; connect-src 'self' https://cdn.socket.io;">
</head>
<!DOCTYPE html>
<html>
<head>
<title>Socket.IO chat</title>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' https://cdn.socket.io http://localhost:3000;">
</head>
<body>
<ul id="messages"></ul>
<form id="form" action="">
<input id="input" autocomplete="off" /><button>Send</button>
</form>
</body>
<script src="https://cdn.socket.io/4.5.4/socket.io.min.js"</script>
</html>
下面是socket.io示例的完整html
1条答案
按热度按时间kwvwclae1#
脚本导入应该在
<script> </script>
标记中。HTML中的脚本导入是一件很好的事情,StackExchange可能有你正在寻找的答案:
<script src="https://cdn.socket.io/socket.io-1.0.0.js"></script>
问题:Socket.io client served from CDN上的“从CDN提供的Socket.io客户端”有一个可接受的答案。
第一种导入类型,HTLM中
以下是需要理解的要点,
<meta> </meta>
是一个在www.example.com上有足够好的描述的标签w3schools.com,如果/当你需要它的时候-用它指定你的内容类型。此socket.io脚本或/和导入可能不需要它。meta
标签,您将能够只使用script标签。也许可以找到最小/最丑的版本。要从cdn导入socket.io,需要<script> </script>
对于JavaScript mins和HTML中的其他内容使用script标签,可能是index.html [但也可能是index.js或其他.html、.js、.tx、.jxt等。],stack.io将可以在HTML页面的其他
<script> </script>
标签中访问。这样你的React、Vue、Next、Gatsby等就会找到你的socket.io,如果它找不到的话,这可以揭示为什么你不需要在HTML中导入socket.io。
不要嵌套
script
标签,因为不确定在支持时它会被用来做什么。第二种导入类型,从JavaScript导入
您可以从
<script> </script>
标记内部执行此操作。Socker.io首页:package.json
是用来让这个工作,一个静态构建vi框架将包括socket.io源代码。总的来说,您遇到了一个安全问题,将脚本注入到
meta
标记中。