Nie jestem pewien, czy chodzi o technologie, czy o moje zrozumienie technologii.Początek jest niedozwolony w programie Access-Control-Allow-Origin - jak włączyć CORS za pomocą bardzo prostego zestawu stron WWW i guice
Mam aplikację html5 napisaną w javascript i html hostowaną na serwerze apache 2.2.
Mam aplikację java napisaną w języku Java za pomocą przystani, guice, jackson, koszulki, która obsługuje prostą usługę REST.
Obie aplikacje uruchomione na tym samym polu, jeden na porcie 80 (czystego aplikacji HTML5 hostowane na apache), druga na 8080 (czystego aplikacji java hostowane na molo/Guice)
Wierzę, że odpowiedź jest nagłówki im wysyłają z powrotem. Nagłówki CORS informują przeglądarkę, że zezwalasz aplikacjom zewnętrznym na korzystanie z interfejsu API. Nie mogę się domyślić, jak skonfigurować serwer Jetty, Guice, aby zwracał prawidłowe nagłówki CORS.
Używam osadzonego serwera Jetty, więc nie mam pliku web.xml do dodania nagłówków.
Może to również mieć związek z tym, jak serwer aplikacji HTML5 (w tym przypadku apache 2.2) obsługuje aplikację.
Apache plik httpd.conf posiada wpis:
LoadModule headers_module modules/mod_headers.so
<IFModule mod_headers>
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, DELETE, HEAD
Header add Access-Control-Allow-Headers: X-PINGOTHER
Header add Access-Control-Max-Age: 1728000
</IfModule>
w mojej konfiguracji Guice servlet Mam następujący:
public class RestModule extends ServletModule{
@Override
protected void configureServlets() {
bind(QuestbookService.class);
// hook Jersey into Guice Servlet
bind(GuiceContainer.class);
// hook Jackson into Jersey as the POJO <-> JSON mapper
bind(JacksonJsonProvider.class).in(Scopes.SINGLETON);
Map<String, String> guiceContainerConfig = new HashMap<String, String>();
guiceContainerConfig.put(ResourceConfig.PROPERTY_RESOURCE_FILTER_FACTORIES,
HttpStatusCodeMetricResourceFilterFactory.class.getCanonicalName());
serve("/*").with(GuiceContainer.class, guiceContainerConfig);
}
}
Myślę, że problem jest w moim Guice config odkąd don nie ma miejsca na ustawienie nagłówków odpowiedzi.
Używam wbudowanego serwera pomostowego i dlatego zorientowałem się, że tryb deweloperski pominie cały czek, ale mogę się mylić.
Dziękuję za radę.
możliwe duplikat [Dlaczego widząc „pochodzenie nie jest dozwolone przez Access-Control-Allow-Origin” błąd tutaj?] (http://stackoverflow.com/questions/9310112/why-am-i-seeing-an-origin-is-not-ileded-by-access-control-allow-origin-error) – Barmar
Moje pytanie jest po stronie serwera, przykład zajmuje się stroną klienta. Biblioteka po stronie klienta już zajmuje się tymi niespójnościami. Jest to problem oparty na serwerze. – AnthonyJClink
Dodano, ponieważ używam wbudowanego serwera z pomostem. Nie jestem pewien, jak skonfigurować bez web.xml ... Wiem, że jest to brak zrozumienia dla technologii. ale uważam, że stos technologii w tym pytaniu jest wystarczająco odmienny od możliwego duplikatu, na który zasługuje jego własna uwaga, ponieważ wiąże się z bardzo różnymi stosami technologii. – AnthonyJClink