国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > AJAX > 正文

jQuery實現ajax調用WCF服務的方法(附帶demo下載)

2024-09-01 08:33:06
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了jQuery實現ajax調用WCF服務的方法,以完整實例形式分析了jQuery的ajax前端調用及后臺交互調用WCF服務的相關技巧,并附帶完整實例共讀者下載,需要的朋友可以參考下
 

本文實例講述了jQuery實現ajax調用WCF服務的方法。分享給大家供大家參考,具體如下:

關于AJAX調用WCF服務分為跨域和不跨域兩種方式,今天咱們先介紹下不跨域下的調用方法。DEMO是在VS2008寫的.

經過測試與研究,發現AJAX調用WCF服務必須滿足以下條件

1.wcf的通訊方式必須使用webHttpBinding
2.必須設置<endpointBehaviors>節點的值
3.服務的實現必須添加標記

復制代碼代碼如下:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

4.方法前面必須添加如下標記
復制代碼代碼如下:
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)]

5.ajax方法中傳遞的參數名稱必須和wcf服務中提供的參數方法名稱一致

 

以下是本人寫的代碼,標記顏色的是需要注意的地方

服務器端配置文件代碼

<system.serviceModel>   <services>    <service name="WcfServiceDemoOne.Service1" behaviorConfiguration="WcfServiceDemoOne.Service1Behavior">     <!-- Service Endpoints -->   <endpoint address="" binding="webHttpBinding" contract="WcfServiceDemoOne.IService1" behaviorConfiguration="HttpBehavior"></endpoint>     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>     <host>      <baseAddresses>       <add baseAddress="http://localhost:12079/Service1.svc"/>      </baseAddresses>     </host>    </service>   </services>   <behaviors>    <serviceBehaviors>     <behavior name="WcfServiceDemoOne.Service1Behavior">      <!-- 為避免泄漏元數據信息,請在部署前將以下值設置為 false 并刪除上面的元數據終結點-->      <serviceMetadata httpGetEnabled="true"/>      <!-- 要接收故障異常詳細信息以進行調試,請將以下值設置為 true。在部署前設置為 false 以避免泄漏異常信息-->      <serviceDebug includeExceptionDetailInFaults="false"/>     </behavior>    </serviceBehaviors>   <endpointBehaviors>   <behavior name="HttpBehavior">    <webHttp/>   </behavior>   </endpointBehaviors>   </behaviors> </system.serviceModel>

服務器端代碼

[ServiceContract]  public interface IService1  {   [OperationContract]   string GetData(int value);   [OperationContract]   City GetDataUsingDataContract(City composite);    [OperationContract]   List<City> GetList();    [OperationContract]   List<City> GetListData(List<City> list);  }  // 使用下面示例中說明的數據約定將復合類型添加到服務操作。  [DataContract]  public class City  {   int seq = 0;   string cityID;   string ctiyName;    [DataMember]   public string CityID   {    get    {     return cityID;    }    set    {     cityID=value;    }   }   [DataMember]   public string CityName   {    get { return ctiyName; }    set { ctiyName = value; }   }   [DataMember]   public int Seq   {    get    { return seq; }    set    { seq = value; }   } }

實現代碼

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]  public class Service1 : IService1  {   [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]   public string GetData(int value)   {    return string.Format("You entered: {0}", value);   }   #region IService1 成員   [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)]   public City GetDataUsingDataContract(City composite)   {    City c = new City();    c.CityID = composite.CityID;    c.CityName = composite.CityName;    c.Seq = composite.Seq;    return c;   }   [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)]   public List<City> GetList()   {    List<City> list = new List<City>();    City cc = new City();    cc.CityID = "1";    cc.CityName="北京";    cc.Seq = 3;    list.Add(cc);    City cc1 = new City();    cc1.CityID = "2";    cc1.CityName = "上海";    cc1.Seq = 4;    list.Add(cc1);    return list;   }   [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)]   public List<City> GetListData(List<City> list)   {    return list;   }   #endregion }

客戶端調用代碼

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WcfServiceDemoOne.WebForm1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">  <title></title>  <script src="jquery-1.7.1.min.js" type="text/javascript"></script>  <script type="text/javascript">  //參數為整數的方法   function fn1()   {    $.ajax({    url: "http://localhost:12079/Service1.svc/GetData",     type: "POST",     contentType: "text/json",     data: '{"value":2}',     dataType: "json",     success: function(returnValue) {      alert(returnValue);     },     error: function() {      alert('error');     }    });   } //參數為實體類的方法   function fn2() {    $.ajax({    url: "http://localhost:12079/Service1.svc/GetDataUsingDataContract",     type: "POST",     contentType: "application/json",     data: '{"CityID":1,"CityName":"北京","Seq":"3"}',     dataType: "json",     success: function(returnValue) {     alert(returnValue.CityID + ' ' + returnValue.CityName + "--" + returnValue.Seq);     },     error: function() {      alert('error');     }    });   } //返回值為類集合的方法   function fn3() {    $.ajax({     url: "http://localhost:12079/Service1.svc/GetList",     type: "POST",     contentType: "application/json",     dataType: "json",     success: function(returnValue) {     for (var i = 0; i < returnValue.length; i++) {      alert(returnValue[i].CityID + ' ' + returnValue[i].CityName+'---'+returnValue[i].Seq);      }     },     error: function() {      alert('error');     }    });   }   function fn4() {    $.ajax({    url: "http://localhost:12079/Service1.svc/GetListData",     type: "POST",     contentType: "application/json",     data: '[{"CityID":1,"CityName":"北京","Seq":"3"},{"CityID":3,"CityName":"上海","Seq":"3"}]',     dataType: "json",     success: function(returnValue) {     for (var i = 0; i < returnValue.length; i++) {      alert(returnValue[i].CityID + ' ' + returnValue[i].CityName + '---' + returnValue[i].Seq);     }     },     error: function() {      alert('error');     }    });   }  </script> </head> <body>  <form id="form1" runat="server">  <div>   <input id="Button1" type="button" value="調用1" onclick="fn1();" /></div>   <input id="Button2" type="button" value="調用2" onclick="fn2();" />   <br />  <input id="Button3" type="button" value="調用3" onclick="fn3();" /></form>  <br />  <input id="Button4" type="button" value="調用4" onclick="fn4();"/> </body> </html> 

完整實例代碼代碼點擊此處本站下載。

希望本文所述對大家jQuery程序設計有所幫助。



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通海县| 清原| 梧州市| 卓尼县| 新丰县| 湄潭县| 滁州市| 工布江达县| 通州市| 许昌县| 元江| 大同市| 舟山市| 五指山市| 瑞安市| 赞皇县| 昌邑市| 连城县| 博罗县| 吴川市| 鲜城| 红桥区| 聂拉木县| 巩义市| 和田市| 滕州市| 板桥市| 桐城市| 新巴尔虎左旗| 铜山县| 茶陵县| 吉木乃县| 奉新县| 卢氏县| 社旗县| 建昌县| 洛南县| 建湖县| 麦盖提县| 平远县| 壤塘县|