28


8

私はjQueryからWebサービスを呼び出したいです。 どうやってやるの?

5 Answer


29


他のリクエストと同じようにAJAXリクエストを行うことができます。

$。ajax({type: 'Get'、URL: 'http://mysite.com/mywebservice'、成功:function(data){alert(data);}

)


7


編集:

OPはクロスドメインリクエストを使用しようとしていませんでしたが、jQueryはv1.5からJSONPをサポートします。 http://api.jquery.com/jQuery.ajax/ [jQuery.ajax()]、特に「crossDomain」パラメータを参照してください。

[line-through]*The regular jQuery Ajax requests will not work クロスサイトなので、リモートのRESTful Webサービスをクエリする場合は、おそらくサーバー上でプロキシを作成し、jQuery getリクエストでそれをクエリする必要があります。 例はhttp://jquery-howto.blogspot.com/2009/04/cross-domain-ajax-querying-with-jquery.html [このサイト]を参照してください。

If it’s a SOAP web service, you may want to try the jqSOAPClient plugin


3


jQueryを使ってWCFサービスを利用する方法についてブログに書きました。

この記事は、JavaScriptでサービスプロキシを作成する方法を示しています。


3


Marwan Aouidaの回答に従うと、私のように問題が発生する場合があります。 コードには小さな間違いがあります。 「成功」の代わりに「成功」​​と表示され、スペルが変更され、コードは正常に機能します。


1


Javaでは、この戻り値はjQuery Ajax GETで失敗します。

Response.status(200).entity(pojoObj).build()を返します。

しかし、これはうまくいきます:

ResponseBuilder rb = Response.status(200).entity(pojoObj); rb.header( "Access-Control-Allow-Origin"、 "*")を返します。

----

Full class:

@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();
    }
}