Javascript 在https页面上获取SEC7111,尝试使用XMLHttpRequest联系本地计算机小部件

Javascript 在https页面上获取SEC7111,尝试使用XMLHttpRequest联系本地计算机小部件,javascript,http,security,https,xmlhttprequest,Javascript,Http,Security,Https,Xmlhttprequest,我们目前有一个内部Javascript web应用程序,通过HTTP/S传输到浏览器。用户桌面上有一个配套的.Net应用程序,它提供了一些纯基于web的应用程序通常无法使用的增强功能。桌面应用程序提供在本地主机上运行的HTTP接口,web应用程序通过未加密的HTTP请求与桌面应用程序通信 这在使用Chrome、Firefox和——在Windows10创建者更新之前——IE11和Edge时可以很好地发挥作用。但是,由于创建者更新,HTTP请求被SEC7111跨源安全错误阻止 对本地应用程序使用HT

我们目前有一个内部Javascript web应用程序,通过HTTP/S传输到浏览器。用户桌面上有一个配套的.Net应用程序,它提供了一些纯基于web的应用程序通常无法使用的增强功能。桌面应用程序提供在本地主机上运行的HTTP接口,web应用程序通过未加密的HTTP请求与桌面应用程序通信

这在使用Chrome、Firefox和——在Windows10创建者更新之前——IE11和Edge时可以很好地发挥作用。但是,由于创建者更新,HTTP请求被SEC7111跨源安全错误阻止

对本地应用程序使用HTTPS不是一个选项。我尝试过关闭“智能屏幕”,并将网站添加到安全区,但都没有成功

我不确定最近的更新中发生了什么变化,但如何跨平台确保HTTPS web应用程序可以与运行HTTP接口的本地应用程序通信

下面是发送初始小部件会话启动的示例代码

 if (!testSession) {
                            var url = 'http://127.0.0.1:9645/widget?command=connect&agent=' + System.AgentName + '&password=' + $('#UserPassword').val();
                            var scr = XMLHttpRequest('http://127.0.0.1:9645/widget');
                            loggingAction('info', 'NOTIFICATION : localhost Widget connection attempt to [' + url + '].');
                            var SR1= $.post(url);
                            SR1.done(function (e) {
                                if (e.indexOf('OK') !== -1) {
                                    sR = true;
                                    loggingAction('info', 'INFORMATION : LocalHost widget active and sent response of ' + e);
                                } else {
                                    sR = false;
                                    loggingAction('warn', 'WARNING : localHost widget not active.');
                                }
                                loggingAction('info', 'NOTIFICATION : Audio connection processing complete.');
                            });
                        }
当XMLHttpRequest试图触发时,会出现错误


以前,XMLHttpResponse方法用于确保端口为post请求打开。post响应获取会话ID号,用于与小部件的进一步通信。

我通过在设置了安全标志的Chrome中测试解决了问题。

我通过在设置了安全标志的Chrome中测试解决了问题