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

Posted

技术标签:

【中文标题】在 https 页面上获取 SEC7111 尝试使用 XMLHttpRequest 联系本地机器小部件【英文标题】:Getting SEC7111 on https page trying to contact Local machine widget using XMLHttpRequest 【发布时间】:2018-04-04 05:01:10 【问题描述】:

我们目前有一个内部 javascript Web 应用程序,通过 HTTP/S 传送到浏览器。用户桌面上有一个配套的 .Net 应用程序,它提供了一些增强的功能,这些功能通常不适用于纯基于 Web 的应用程序。桌面应用程序提供运行在 localhost 上的 HTTP 接口,Web 应用程序通过未加密的 HTTP 请求与桌面应用程序通信。

使用 Chrome、Firefox 和 - 在 Windows 10 创意者更新之前 - IE11 和 Edge 时,这可以正常工作。但是,自从 Creators 更新以来,HTTP 请求被阻止并出现 SEC7111 Cross Origin Security 错误。

对本地应用程序使用 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 请求开放。发布响应获得一个 SessionID 编号,用于与小部件进行进一步通信。

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于在 https 页面上获取 SEC7111 尝试使用 XMLHttpRequest 联系本地机器小部件的主要内容,如果未能解决你的问题,请参考以下文章

AG7111 中文说明书|AG7111方案设计中文版

hdu 7111-Remove

在同一页面上设置后立即获取 ID

如何使百里香弹簧安全命名空间可用?

从 HTML、CSS 和 JavaScript 中获取干净的字符串

如何使按钮静态并固定在底部