java - 在浏览器中运行的 Java 应用程序和 JavaScript 可以相互通信吗?

标签 java javascript

我在网站中嵌入了 JavaScript,在普通浏览器中运行,并且在同一台机器上运行了 Java 应用程序。我正在寻找一种方式让双方相互沟通。

我认为从浏览器中运行的 JavaScript 内部在本地文件系统中创建文件是不可能的。

我想到的唯一方法是使用两个程序都可以向其发送消息并从中轮询新消息的服务器。

还有其他方法可以实现吗?

最佳答案

我在实践中看到的几种方式:

  • 您的 Java 应用程序可能会监听您的 JS 将访问的某些本地端口,例如通过 XHR。您需要注意跨站点脚本(您的 JS 可能需要从该本地 URL 加载),但这是可行的。最简单的可能是运行嵌入式 HTTP 服务器。
  • 您的 Java 应用程序可以在操作系统中注册为协议(protocol)处理程序。然后 JS 将打开在应用程序中注册的链接,从而向它发送数据。

正如@PavelHoral 指出的那样,CORS是解决方法 same-origin policy .

关于java - 在浏览器中运行的 Java 应用程序和 JavaScript 可以相互通信吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27230250/

相关文章:

java - 如何在锁定文件中写入数据?

java - 通过本地网络传输实时数据

javascript - 保存暗模式首选项 (localStorage) 的问题

javascript - 是否有可能通过 http 获取用户位置,或者 https 是唯一的解决方案?

javascript - 如何仅更改 1 行而非全部的切换值

javascript - 如何将对象的属性用于变量?

java - Java中如何共享类对象?

java - 如何使用安全约束将用户重定向到特定页面?

java - 不能在 DDL 语句中使用绑定(bind)变量。备择方案?

javascript - JS滚动链接-使用linkify-如何定位特定类?