我们目前有一个内部的Javascript web应用程序,通过HTTP/S提供给浏览器。在用户的桌面上有一个配套的.Net应用程序,它提供了一些增强的功能,这些功能通常是纯基于web的应用程序所不能提供的。桌面应用程序提供在本地主机上运行的HTTP接口,web应用程序通过未加密的HTTP请求与桌面应用程序通信。
在Windows10创建者更新之前,使用Chrome、Firefox和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响应获得一个SessionID号,用于与小部件的进一步通信。
发布于 2020-10-22 18:47:51
我通过在设置了安全标志的Chrome中进行测试解决了这个问题
https://stackoverflow.com/questions/46892875
复制相似问题