2013-04-25 7 views
6

Ich entwickle eine JavaFX-Anwendung, die meist eine verherrlichte Webseite ist. Es ist eine Desktop-Anwendung (es ist nicht in eine Webseite eingebettet) und es hat eine Web-Ansicht für die Hauptbenutzeroberfläche. Die Anwendung selbst dient ausschließlich dem Zweck, mit Bluecove auf Bluetooth-Geräte zuzugreifen, da dies in einem Webbrowser nicht direkt mit JavaScript möglich ist.JavaFX WebView disable Gleiche Herkunftsrichtlinie (domänenübergreifende Anfragen erlauben)

Der Proof-of-Concept funktioniert ok (ich konnte JavaScript-Code von Java und umgekehrt aufrufen), aber ich habe eine zusätzliche Anforderung von willkürlichen Web-Services/API innerhalb von JavaScript aufrufen, aber dies verletzt die gleiche Herkunft Politik (ähnlich dazu auf Android: Allow remote ajax calls in an Android Webview + jquery mobile). Ist das auf JavaFX möglich? Irgendwelche Tipps?

P.S .: Ich benutze JavaFX 2.2.

Antwort

0

Da Sie JavaFX bereits als Desktopanwendung ausführen, können Sie Ihren JavaScript-Aufruf über Java ausführen, wobei die Richtlinie für denselben Ursprung nicht gilt.

Alternativ scheint this answer to the SO question you've posted eine praktikable Alternative zu sein.

6

Grundsätzlich hat javaFx das Problem, das mit CORS gekoppelt ist - https://javafx-jira.kenai.com/browse/RT-35868. Unter der Annahme, dass die Web-Services, die Sie verwenden, haben CORS aktiviert können Sie den folgenden Ansatz versuchen:

  • System.setProperty("sun.net.http.allowRestrictedHeaders", "true")

ODER

  • java -Dsun.net.http.allowRestrictedHeaders=true <your main class here>

Hoffe, dass es hilft, Sie