我们的网络应用程序有一个按钮,应该将数据发送到本地网络上的服务器,然后在本地网络上打印某些内容。网页如何向本地网络发送消息
到目前为止,这很容易:该按钮触发了带有令牌的http://printerserver/print.php
的AJAX POST请求,该页面连接到Web应用程序以验证令牌并获取要打印并打印的数据。但是,我们现在通过HTTP传递我们的Web应用程序(我宁愿不要回到HTTP),而新版本的Chrome和Firefox不再向HTTP地址发出请求,他们不会再向HTTP地址发送请求,甚至可以发送请求来检查CORS头。
现在,什么是跨协议XHR的现代替代方案? Websockets遭受同样的问题吗? (谷歌搜索没有说明这里的当前状态。)我可以使用TCP套接字吗?我宁愿不切换到GET请求,因为这个动作不是幂等的,它可能对预加载和缓存有实际意义。我可以用任何方式更改打印机服务器上的应用程序(所以我可以用NodeJS或其他东西替换它),但是我无法更改用户的浏览器(例如,信任自签名证书,例如printersserver)。
只是一个想法,但你有没有尝试使用CURL来提出您的要求? 由于CURL创建自己的会话,它不应该受浏览器行为方式的影响。 – 2014-11-05 12:40:40
我认为这个问题很明显:机器_printerserver_和用户的浏览器在一个网络中,网络服务器在互联网上。 – AndreKR 2014-11-05 13:42:49
如果我理解正确,您正尝试从HTTPS网站调用“http://printerserver/print.php”。 尝试在443端口运行“http://printerserver/print.php”服务器 - 以支持HTTPS,因此您的呼叫将采用相同的协议。 – 2014-11-06 19:10:34