Java REST Web API hívása JavaScript-ből

Java REST Web API hívása JavaScript-ből
2016-02-13T17:09:51+01:00
2016-02-14T15:59:01+01:00
2022-12-03T07:05:39+01:00
Teky111
Sziasztok!
Van egy Java Web Api-m, amit valamilyen script nyelvből szeretnék hívogatni.
Az API a Jersey servletet használja, és Jackson JSON provider van benne. Maga a service így néz ki:

@GET @Path("message") @Produces(MediaType.APPLICATION_JSON) public Message getMessage(){ Message m1= new Message(); m1.setName("Üzenet"); return m1; }
Ezt böngészőből hívogatva szépen vissza is adja JSON formátumban amit várok 
{"name":"Üzenet"}

Először probáltam AngularJs-el hívogatni, de nem ment, majd olvastam olyasmiket, hogy JASONP-be várná az üzeneteket, majd ekkor találtam jquery-s megoldást ahol picit több mindent lehet állogatni, de sajnos ezzel se jutottam semmire. Ezt próbálgattam:

$(document).ready(function() { $.ajax({ url: "http://localhost:8080/TA/rest/Api/message", type: "GET", contentType: "application/json", cache: false, dataType: "json", error: function (jqXHR, status) { alert(status); } }).then(function(data) { $('.gid').append(data.name); }); });
Egy neten talált api url-jével tökéletesen működik, de az enyémmel sajnos nem. Az gondolom nem lehet probléma, hogy localhost-on keresem, ja egyébként egy Tomcat 7-essel futtatom a webalkalmazást.
Légyszi segítsetek, ha valaki tudja mit baszarintottam el.
Mutasd a teljes hozzászólást!
A böngésző JS konzolját nézted már? Ír ki valami hibát?

Ugyanaz a szerver szolgálja ki a HTML oldalt, mint amin a REST service van? Alapesetben a böngésző csak olyan erőforrásokat enged elérni AJAX-szal, amik ugyanazon az origin-en vannak (vagyis a protokoll, host név és port szám mind egyeznek). Ezt ki lehet kapcsolni, de ehhez a szerver oldalt kell megváltoztatnod, hogy speciális header-öket küldjön a válaszban.
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd