2013-04-25 30 views
6

Tôi đang phát triển một ứng dụng JavaFX mà chủ yếu là một trang web được tôn vinh. Nó là một ứng dụng máy tính để bàn (nó không được nhúng vào một trang web) và nó có một Web View cho giao diện người dùng chính. Bản thân ứng dụng này phục vụ mục đích duy nhất là truy cập các thiết bị Bluetooth bằng Bluecove vì không thể trực tiếp với JavaScript trên trình duyệt web.JavaFX WebView vô hiệu hóa Chính sách gốc tương tự (cho phép yêu cầu miền chéo)

Bằng chứng về khái niệm hoạt động ok (tôi có thể gọi mã JavaScript từ Java và ngược lại) nhưng tôi có thêm một yêu cầu gọi các dịch vụ web/API tùy ý từ bên trong JavaScript nhưng vi phạm chính sách gốc tương tự (tương tự này trên Android: Allow remote ajax calls in an Android Webview + jquery mobile). Điều này có thể thực hiện trên JavaFX không? Có lời khuyên nào không?

P .: Tôi đang sử dụng JavaFX 2.2.

Trả lời

0

Vì bạn đã chạy trong JavaFX dưới dạng ứng dụng dành cho máy tính để bàn, bạn có thể thực hiện cuộc gọi JavaScript qua Java, trong đó chính sách gốc không áp dụng.

Hoặc, this answer to the SO question you've posted có vẻ là một giải pháp thay thế khả thi.

6

Về cơ bản, javaFx có vấn đề được kết hợp với CORS - https://javafx-jira.kenai.com/browse/RT-35868. Giả sử rằng các dịch vụ web mà bạn đang sử dụng, đã CORS kích hoạt bạn có thể thử phương pháp sau đây:

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

HOẶC

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

Hy vọng nó sẽ giúp bạn

Các vấn đề liên quan