web-dev-qa-db-ja.com

jQueryを使用してASP.NET Webサービスを呼び出す方法

JQueryを使用してASP.NET Webサービス(SharePoint Server 2007 list.asmx)からデータを取得しようとしていますが、Webサービスへの呼び出しは、その方向の最初のステップとして本当に役立ちます。

63
Simara

このメソッドをラッパーとして使用して、パラメーターを送信できるようにします。また、メソッドの上部で変数を使用すると、より高い比率で最小化でき、複数の同様の呼び出しを行う場合にコードを再利用できます。

function InfoByDate(sDate, eDate){
    var divToBeWorkedOn = "#AjaxPlaceHolder";
    var webMethod = "http://MyWebService/Web.asmx/GetInfoByDates";
    var parameters = "{'sDate':'" + sDate + "','eDate':'" + eDate + "'}";

    $.ajax({
        type: "POST",
        url: webMethod,
        data: parameters,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            $(divToBeWorkedOn).html(msg.d);
        },
        error: function(e){
            $(divToBeWorkedOn).html("Unavailable");
        }
    });
}

それがお役に立てば幸いです。

これには、この方法で使用できるJSON Webメソッドを公開するために3.5フレームワークが必要であることに注意してください。

75
Bobby Borszich

JQuery.getを使用してWebサービスを呼び出す例は次のとおりです。

$.get("http://domain.com/webservice.asmx", { name: "John", time: "2pm" },
  function(data){
    alert("Data Loaded: " + data);
  });

上記の例では、「webservice.asmx」を呼び出して、nameとtimeの2つのパラメーターを渡します。次に、コールバック関数でサービス出力を取得します。

9
mohammedn

特定のSharePoint Webサービスについては知りませんが、ページメソッドまたはWebサービスを<WebMethod()>(VB.NET)で装飾して、JSONにシリアル化されるようにすることができます。おそらく、webservice.asmxが内部的に使用するメソッドを、独自のWebサービスでラップすることができます。

Dave Wardには a nice walkthrough があります。

3
Herb Caudill
$.ajax({
 type: 'POST',
 url: 'data.asmx/getText',
 data: {'argInput' : 'input arg(s)'},
 complete: function(xData, status) {
 $('#txt').html($(xData.responseXML).text()); // result
 }
});
2
Kaveh

私は、jQuery AJAXおよびASMXに適切な例を示しています。asmxWebサービスでjQuery AJAX呼び出しを使用しています...

JSONを返すようにするには、コメントを解除するコード行があります。

1
Brandon Joyce

SPServices は、SharePointのWebサービスを抽象化し、使いやすくするjQueryライブラリです

認定済み SharePoint 2007の場合

Lists.asmxでサポートされている操作のリストが見つかりました here

この例では、お知らせリストのすべてのアイテムを取得し、tasksUL divの箇条書きリストにタイトルを表示しています。

<script type="text/javascript" src="filelink/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="filelink/jquery.SPServices-0.6.2.min.js"></script>
<script language="javascript" type="text/javascript">

$(document).ready(function() {
  $().SPServices({
    operation: "GetListItems",
    async: false,
    listName: "Announcements",
    CAMLViewFields: "<ViewFields><FieldRef Name='Title' /></ViewFields>",
    completefunc: function (xData, Status) {
      $(xData.responseXML).SPFilterNode("z:row").each(function() {
        var liHtml = "<li>" + $(this).attr("ows_Title") + "</li>";
        $("#tasksUL").append(liHtml);
      });
    }
  });
});
</script>
<ul id="tasksUL"/>
1

私はjQueryとともにajaxproをよく使用します。 ajaxproを使用すると、JavaScriptから.NET関数を呼び出すことができ、残りはjQueryを使用します。

0
Antony Delaney