JQueryからWebサービスを呼び出したい。どうやってやるの?
AJAXリクエストを他のリクエストと同様に行うことができます:
$.ajax( {
type:'Get',
url:'http://mysite.com/mywebservice',
success:function(data) {
alert(data);
}
})
編集:
OPはクロスドメインリクエストの使用を検討していませんでしたが、jQueryはv1.5の時点でJSONPをサポートしています。 jQuery.ajax() 、特にcrossDomain
パラメーターを参照してください。
通常のjQuery Ajaxリクエストはクロスサイトで機能しないため、リモートRESTful Webサービスをクエリする場合は、おそらくサーバー上でプロキシを作成し、jQuery getリクエストでクエリする必要があります。例については、 このサイト を参照してください。
SOAP Webサービスの場合、 jqSOAPClientプラグイン を試してください。
JQueryを使用してWCFサービスを利用する方法についてブログに書きました:
http://yoavniran.wordpress.com/2009/08/02/creating-a-webservice-proxy-with-jquery/
投稿では、JavaScriptでサービスプロキシを作成する方法を示しています。
Marwan Aouidaの答えに続いて、私のような問題を抱えている人がいる場合...コードにはちょっとした誤字があります。 「成功」の代わりに、「成功」はスペルを変更し、コードは正常に動作すると言います。
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();
}
}