JavaFX WebView禁用相同的源策略(允许跨域请求)

pet*_*nts 7 javascript javafx cross-domain same-origin-policy

我正在开发一个主要是美化网页的JavaFX应用程序.它是一个桌面应用程序(它没有嵌入到网页中),它有一个主UI的Web视图.应用程序本身仅用于使用Bluecove访问蓝牙设备,因为在Web浏览器上无法直接使用JavaScript.

概念验证工作正常(我能够从Java调用JavaScript代码,反之亦然)但我有一个额外的要求,即从JavaScript中调用任意Web服务/ API,但这违反了相同的原始策略(在Android上类似于此) :允许在Android Webview + jquery mobile中进行远程ajax调用.这可能在JavaFX上吗?有小费吗?

PS:我正在使用JavaFX 2.2.

Ily*_*iuk 6

基本上,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>

希望它会对你有所帮助


小智 0

由于您已经在 J​​avaFX 中作为桌面应用程序运行,因此您可以通过 Java 进行 JavaScript 调用,但同源策略不适用。

或者,您发布的SO问题的答案似乎是一个可行的选择。