Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 未捕获的安全性错误:无法构造';WebSocket';:不能从通过HTTPS加载的页面启动不安全的WebSocket连接_Html_Jakarta Ee_Ssl_Websocket_Java Ee 7 - Fatal编程技术网

Html 未捕获的安全性错误:无法构造';WebSocket';:不能从通过HTTPS加载的页面启动不安全的WebSocket连接

Html 未捕获的安全性错误:无法构造';WebSocket';:不能从通过HTTPS加载的页面启动不安全的WebSocket连接,html,jakarta-ee,ssl,websocket,java-ee-7,Html,Jakarta Ee,Ssl,Websocket,Java Ee 7,我使用的是GlassFish服务器4.1/JavaEE7。在我的web.xml文件中,我提到了以下安全约束 用户约束 提供一个名字 /行政方/* 得到 邮递 角色管理 保密的 其他当局也是如此 由于传输保证设置为机密,因此与指定URL模式匹配的网页/admin\u-side/*通过安全通道(HTTPS)运行 在使用WebSocket时,如下所示(JavaScript) 它无法建立初始握手。浏览器在浏览器控制台上显示以下警告 [blocked] The page at 'https://loc

我使用的是GlassFish服务器4.1/JavaEE7。在我的web.xml文件中,我提到了以下安全约束


用户约束
提供一个名字
/行政方/*
得到
邮递
角色管理
保密的
其他当局也是如此

由于
传输保证
设置为
机密
,因此与指定URL模式匹配的网页
/admin\u-side/*
通过安全通道(
HTTPS
)运行

在使用WebSocket时,如下所示(JavaScript)

它无法建立初始握手。浏览器在浏览器控制台上显示以下警告

[blocked] The page at 'https://localhost:8181/Context/admin_side/Category' was loaded over HTTPS, but ran insecure content from 'ws://localhost:8080/Context/Push': this content should also be loaded over HTTPS.

Uncaught SecurityError: Failed to construct 'WebSocket': An insecure WebSocket connection may not be initiated from a page loaded over HTTPS.
当web.xml中的
部分被完全删除时,网页将在
HTTP
上运行。之后,改变,

var ws = new WebSocket("ws://localhost:8181/Context/Push");

很好


如何使websocket在安全通道上工作?

尝试使用
wss://
,这表明您需要安全的websocket连接。浏览器将阻止您从安全页面创建不安全的连接,因为它知道,由于您使用
https://
请求页面,因此存在传输安全要求


如果您的WebSocket服务器与YoutWeb服务器一起运行,它可能会使用相同的安全证书,您不需要做任何操作。如果不起作用,请检查您的WebSocket服务器文档,了解如何添加证书和启用
wss://

是!成功了。我以前从未见过wss://。请加上它作为答案。谢谢,谢谢!我还添加了一些附加信息以供将来参考。
var ws = new WebSocket("ws://localhost:8181/Context/Push");
var ws = new WebSocket("ws://localhost:8080/Context/Push");