我正在开发一个主要是美化网页的 JavaFX 应用程序。它是一个桌面应用程序(它没有嵌入到网页中)并且它有一个用于主 UI 的 Web View 。该应用程序本身的唯一目的是使用 Bluecove 访问蓝牙设备,因为在 Web 浏览器上直接使用 JavaScript 是不可能的。
概念验证工作正常(我能够从 Java 调用 JavaScript 代码,反之亦然)但我有一个额外的要求,即从 JavaScript 中调用任意 Web 服务/API,但这违反了同源策略(类似于这在 Android 上:Allow remote ajax calls in an Android Webview + jquery mobile )。这在 JavaFX 上可行吗?有什么建议吗?
附注:我使用的是 JavaFX 2.2。
最佳答案
基本上,javaFx 存在与 CORS 相关的问题 - https://javafx-jira.kenai.com/browse/RT-35868 .假设您正在使用的 Web 服务启用了 CORS,您可以尝试以下方法:
-
System.setProperty("sun.net.http.allowRestrictedHeaders", "true")
或
-
java -Dsun.net.http.allowRestrictedHeaders=true <your main class here>
希望对你有帮助
关于javascript - JavaFX WebView 禁用同源策略(允许跨域请求),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16215844/