Веб-сервис работает в интерфейсе SOAP, но не в приложении

#jquery #rest #jakarta-ee #glassfish

#jquery #остальное #джакарта-ee #glassfish

Вопрос:

Я создал простой веб-сервис restful restful, который я развернул на Glassfish. Я смог использовать веб-сервис с интерфейсом SOAP, но у меня возникли проблемы с выполнением того же самого с моим уровнем представления (простая html-страница).

Это функция ajax, которую я использую:

 $(document).ready(function(){
$("#getAllCustomers").click(function(){
    alert("Button is functional");
    $.ajax({
       type: "get",
       url: "http://localhost:8080/restfulpractice/webresources/customer",
       success: function(data){
           var jsonData = $.parseJSON(data);
           alert("Callback function is functional");
           $.each(jsonData, function(i, item){
              this.after("<br><br>" item "<br><br>");
           });
       }
    });
});
});
  

Кнопка работает. Так что со слушателем все в порядке. Я трижды проверил URL. Что я делаю не так? Могу ли я как-то проверить, получаю ли я вообще ответ от сервера без вызова каких-либо методов обслуживания?

Редактировать: Хорошо, спасибо за ответ. После проверки ответа в браузере я обнаружил, что мне нужно добавить заголовок «Access-Control-Allow-Origin». Каков наилучший способ сделать это, если метод, который я использую, выглядит следующим образом:

 @GET
@Override
@Produces({"application/json"})
public List<Customer> findAll() {
    return super.findAll();
}
  

Ответ №1:

 We can send cross domain request via HTTP Request call(like in C#,JAVA) but as 
you say you are using simple html page and try to make service call via ajax.
Earlier we couldn't make cross domain call using ajax call but now we can. 
You just need to set crossDomain property true which false by default in ajax 
call and except jsonp data instead of json. It might be affect your service return 
data format.

Here is one link which you can prefer for more detailing and example.  
http://www.pureexample.com/jquery/cross-domain-ajax.html
  

Ответ №2:

 It seems your trying to make cross domain call.In that case you should need to make proper configuration for cross domain call(not just simple ajax call). 
For testing your services, there are to many browser plugins are available which you can use. like Rest-client for fire-fox, Post-man in Chrome etc.