Я хочу вызвать веб-сервис из jQuery. Как я могу это сделать?
Как вызвать веб-службу из jQuery
Ответ 1
Вы можете сделать запрос AJAX, как и любые другие запросы:
$.ajax( {
type:'Get',
url:'http://mysite.com/mywebservice',
success:function(data) {
alert(data);
}
})
Ответ 2
EDIT:
OP не хотел использовать междоменные запросы, но jQuery поддерживает JSONP с версии 1.5. См. jQuery.ajax(), в частности параметр crossDomain
.
Обычные jQuery Ajax-запросы не будут работать на разных сайтах, поэтому, если вы хотите запросить удаленный веб-сервис RESTful, вам, вероятно, придется сделать прокси-сервер на своем сервере и запросить его с помощью запроса jQuery get, См. этот сайт для примера.
Если это веб-служба SOAP, вы можете попробовать плагин jqSOAPClient.
Ответ 3
Я писал о том, как использовать службу WCF с помощью jQuery:
http://yoavniran.wordpress.com/2009/08/02/creating-a-webservice-proxy-with-jquery/
Сообщение показывает, как создать прокси-сервер службы прямо в javascript.
Ответ 4
У людей, у которых такая проблема, как я, после ответа Марвана Ауиды... у кода есть небольшая опечатка. Вместо "успеха" он говорит, что "sucess" меняет правописание, и код работает нормально.
Ответ 5
В Java это возвращаемое значение не выполняется с помощью jQuery Ajax GET:
return Response.status(200).entity(pojoObj).build();
Но это работает:
ResponseBuilder rb = Response.status(200).entity(pojoObj);
return rb.header("Access-Control-Allow-Origin", "*").build();
----
Полный класс:
@Path("/password")
public class PasswordStorage {
@GET
@Produces({ MediaType.APPLICATION_JSON })
public Response getRole() {
Contact pojoObj= new Contact();
pojoObj.setRole("manager");
ResponseBuilder rb = Response.status(200).entity(pojoObj);
return rb.header("Access-Control-Allow-Origin", "*").build();
//Fails jQuery: return Response.status(200).entity(pojoObj).build();
}
}