2013-04-25 29 views
6

Zajmuję się tworzeniem aplikacji JavaFX, która jest w większości udoskonaloną stroną internetową. Jest to aplikacja komputerowa (nie jest osadzona na stronie internetowej) i ma widok internetowy dla głównego interfejsu użytkownika. Sama aplikacja służy wyłącznie do uzyskiwania dostępu do urządzeń Bluetooth za pomocą Bluecove, ponieważ nie jest to możliwe bezpośrednio za pomocą JavaScript w przeglądarce internetowej.Wyłączenie JavaFX WebView Ta sama polityka pochodzenia (zezwól na żądania w różnych domenach)

Dowód koncepcji działa dobrze (udało mi się wywołać kod JavaScript z Java i odwrotnie), ale mam jeden dodatkowy wymóg wywoływania dowolnych usług internetowych/API z poziomu JavaScript, ale to narusza tę samą politykę pochodzenia (podobne do tego na Androida: Allow remote ajax calls in an Android Webview + jquery mobile). Czy to możliwe w JavaFX? Jakieś wskazówki?

P.S .: Używam JavaFX 2.2.

Odpowiedz

0

Ponieważ już działasz w środowisku JavaFX jako aplikacja komputerowa, możesz wykonywać połączenia JavaScript za pośrednictwem Java, gdzie zasady tego samego pochodzenia nie mają zastosowania.

Alternatywnie, this answer to the SO question you've posted wydaje się być realną alternatywą.

6

Zasadniczo javaFx ma problem, który jest powiązany z CORS - https://javafx-jira.kenai.com/browse/RT-35868. Zakładając, że usługi internetowe, które używasz, nie CORS umożliwiło można wypróbować następujące podejście:

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

LUB

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

nadzieję, że to pomoże ty