91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jQuery中怎么實現調用WCF

發布時間:2021-06-20 16:00:53 來源:億速云 閱讀:219 作者:Leah 欄目:web開發

這期內容當中小編將會給大家帶來有關jQuery中怎么實現調用WCF,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

一、我們首先建好一個項目,在VS2010中,建立好一個Web項目,并添加一個“啟用了Ajax的WCF服務”。

二、添加完成后,會自動打開剛才添加的文件,我們進行一些簡的修改,便于一會客戶端去調用,修改代碼如下:

[ServiceContract(Namespace = "")]   [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]  public class DataService       {            /// <summary>            /// 一、簡單調用服務端方法           /// </summary>            /// <returns></returns>           [OperationContract]           [WebGet()]           public string DoWork()           {                         return string.Format("Today is {0}",DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss:fff"));           }                 }

三、客戶端代碼中如下:

<html xmlns="http://www.w3.org/1999/xhtml">     <head runat="server">        <title></title>        <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>         <script type="text/javascript">            $(document).ready(function () {                $("#btnGetServerDate").click(function () {                    $.ajax({                        url: "DataService.svc/DoWork",                       type: "get",                       success: function (data) {                           alert(data.d);                       }                   })               });           })       </script>   </head>   <body>       <form id="form1" runat="server">       <div>                 <input id="btnGetServerDate" type="button" value="簡單調用" title="顯示服務器上的時間" /></div>       </form>   </body>   </html>

以上是最基本的調用沒有什么可說的.

下面,我們來進行一個稍微復雜點的例子演示,我們在實現的效果是:“客戶端提交一個注冊信息,然后在服務器端取出并解析成一個實體類對象,然后返回客戶端狀態。服務端代碼如下:

/// <summary>          /// 二、由客戶端傳入數據示例               /// </summary>          /// <param name="userInfo">Json格式的UserInfo數據</param>          /// <returns></returns>          [OperationContract]          [WebGet(ResponseFormat=WebMessageFormat.Json)] //必須是WebGet,客戶端對應著Get方式請求,如果是POST方式,服務端而是WebInvoke,不過很遺憾,暫時貌似好不支持,反正我是沒使用成功,有知道的請告訴我          public string Register(string userInfo)          {             UserInfo model = JsonConvert.DeserializeObject<UserInfo>(userInfo);//Newtonsoft.Json 使用第三方類庫將傳入的Json字符串反序列化成實體類。             return string.Format("hello {0} sir!", model.LoginName);         }

然后客戶端對應如下:

//示例二              $("#btnRegiter").click(function () {                  var jsonString = "userinfo={\"loginName\":\"cheng\",\"password\":\"tomcat\"}"; //注意:我服務端只接收一個參數那就是String類型命稱為userInfo的變量,所以前面對應也叫userInfo                  $.ajax({                      url: "DataService.svc/Register",                      type:"get", //注意是Get方式,服務端對應著WebGet()                      data: jsonString,                      success: function (data) {                          alert(data.d);                     }                 })             })

此例子主要演示,客戶端提交一個JSON字符串格式的數組到服務端,然后服務端通過反序列化方式將傳入的字符串序列化成自定義對象。NET3.5自已也支持反序列化,但用的不爽,我用的是“Newtonsoft.Json”這個,但也需要注意一個問題,那就是如果客戶端傳入的數據是數值類型的話,請不要加引號,否則會反序列化失敗。如“{"age":25}”,服務端對應“public int Age{get;set;}”。但具JSON.org上說的標準JSON格式,健/值好像都應該需要加上引號的,所以這里大家需要注意。

下面接著在演示一個客戶端獲取一個List類型數據并解析,同樣服務端代碼如下:

[OperationContract]            [WebGet(ResponseFormat = WebMessageFormat.Json)]            public List<UserInfo> GetAll()            {              List<UserInfo> lists = new List<UserInfo>()                 {                     new UserInfo() { LoginName = "cheng", Password = "cheng" },                    new UserInfo() { LoginName = "tomcat", Password = "tomcat" }                 };               return lists;           }      [DataContract]       public class UserInfo       {           private string _loginName;           private string _password;              [DataMember]           public string Password           {               get { return _password; }               set { _password = value; }           }           [DataMember]           public string LoginName           {               get { return _loginName; }               set { _loginName = value; }           }       }

客戶端代碼如下:

$("#btnGetAllUser").click(function () {                    $.ajax({                        url: "DataService.svc/GetAll",                        type: "get", //注意是Get方式,服務端對應著WebGet()                                     success: function (data) {                            for (var i = 0; i < data.d.length; i++) {                                $("#divContent").append("<a>用戶名:" + data.d[i].LoginName + "</a><a>密碼:" + data.d[i].Password + "</a><br />");                                                       }                        },                       error: function (msg) {                           alert(msg.responseText);                       }                   })               })

好了,三種最常用的調用方式就這樣了,當然,你可以稍微修改一下連接上數據庫一起使用,***我總結一下,在調用過程常見的錯誤及解決方法。

一、推薦使用Firebug去調試,在Firebug中有一個“網絡”選項卡,在那里,你可以清楚的看到你是否成功調用WCF服務,而且可以看到返回的數據格工及詳細內容,而且如果調用出錯,也可以給出明確的出錯信息。

jQuery中怎么實現調用WCF

二、在調試階端,推薦使用“GET”方式請求服務,然后在error:funcation(msg){alert(msg.responseText);}這樣同樣也能看到大部份出錯提示。

三、配置文件,在添加時就自動配置好了,所以一般情況下沒有特殊要求無需更改。這是VS2010中的好處。

上述就是小編為大家分享的jQuery中怎么實現調用WCF了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

日土县| 公主岭市| 尼木县| 伊川县| 休宁县| 土默特右旗| 察哈| 天柱县| 淮北市| 哈巴河县| 霍邱县| 盐源县| 通渭县| 天津市| 东至县| 平潭县| 洪湖市| 电白县| 周至县| 景洪市| 长宁县| 开平市| 新余市| 顺昌县| 盖州市| 阿克陶县| 革吉县| 南靖县| 托克逊县| 大竹县| 北安市| 武安市| 中方县| 澜沧| 嘉善县| 阿瓦提县| 永春县| 庄浪县| 镇赉县| 盐池县| 吉林市|