Maison >interface Web >js tutoriel >Explication détaillée des étapes pour appeler le service WCF avec jQuery+ajax

Explication détaillée des étapes pour appeler le service WCF avec jQuery+ajax

php中世界最好的语言
php中世界最好的语言original
2018-04-23 17:46:312119parcourir

Cette fois, je vais vous apporter une explication détaillée des étapes pour que jQuery+ajax appelle les services WCF. Quelles sont les précautions pour que jQuery+ajax appelle les services WCF. Voici des cas pratiques, prenons. un regard.

L'exemple de cet article décrit comment jQuery implémente ajax pour appeler les services WCF. Je le partage avec vous pour votre référence. Les détails sont les suivants :

Concernant les services WCF appelant AJAX, il existe deux méthodes : cross-domain et non-cross-domain. Aujourd'hui, nous présenterons d'abord le non-cross-domain. méthode d'appel inter-domaines. DEMO a été écrit en VS2008

Après des tests et des recherches, il a été constaté qu'AJAX appelant le service WCF doit remplir les conditions suivantes

1 La méthode de communication de wcf doit utiliser webHttpBinding
2. . Doit être défini < ;endpointBehaviors>La valeur du nœud
3. L'implémentation du service doit ajouter la balise

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

4 La balise suivante doit être ajoutée devant la méthode <.>

[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)]
5. transmis dans la méthode ajax Le nom du paramètre doit être cohérent avec le nom de la méthode du paramètre fourni dans le service wcf

Ce qui suit est le code que j'ai écrit. Les couleurs marquées sont les. endroits qui nécessitent une attention

Côté serveur

Fichier de configurationCode

84885eed1b30b261c5cb79484b41857f 
  9c020ba5b5829ca56c307612e71824b9 
   7af72fde0425263f6225f34d11d8be49 
    6eee7f5eeb23b28f25b647b835277888 
  899ce863166bff869e9b3ac68a2abfcdbce49a4f38d6cdd67362210863eac83d 
    be0a8158e3152d2b14f2ed7522c8bc1b 
    f7e6dec31ab1a0471d06c55afaca8d77 
     e7570860ff43afa4e8fe5ee4ff7b4037 
      5150410d5ae86a9aca86e39dba09763e 
     fa66bbfdbebbb6577eb3ef9be72f23ed 
    aae1c58f530f9c5ba604cee69fb0f991 
   07aad2482592b0629b89dc8fa8f9c2a7 
  bf86d273c03a30aed53d23f25c36971a 
  916007fd9688fe14d08e356f35512ffa 
   2d335b4e8bd5e457257c0f13e71684bc 
    6c4da2614f0b2a127b823cfc6a44c0d6 
     f6d76b94f29620466291ee3eb341a02b 
     585a217627162a5737a3a01f3709aba3 
     0419a42e71e1c09b795a9222aa041d03 
     6ed898c0d9e76a35ed2d31b28e3e3069 
    f734f6031f80298e381163a7dfb9d20b 
   6561d4bb80871abf40ca480f0a6b744f 
  32bcd8fda1beba957eb36b998b6a6c69 
  f351c1019e07b6e953a97397da23e9b1 
   65e2eede2048ddef4398c4604ef3b1ef 
  f734f6031f80298e381163a7dfb9d20b 
  acc36b2e4f9d6cee49b7d135db43f75c 
  1d19725e017e18860613f450a717754b 
196c529656d77e626e143ff3bd83d11b
Code côté serveur

[ServiceContract] 
 public interface IService1 
 { 
  [OperationContract] 
  string GetData(int value); 
  [OperationContract] 
  City GetDataUsingDataContract(City composite); 
   [OperationContract] 
  List6c132ff3bb7a6c407d7ed87f2557a5a4 GetList(); 
   [OperationContract] 
  List6c132ff3bb7a6c407d7ed87f2557a5a4 GetListData(List6c132ff3bb7a6c407d7ed87f2557a5a4 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; } 
  } 
}
Code d'implémentation

[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 List6c132ff3bb7a6c407d7ed87f2557a5a4 GetList() 
  { 
   List6c132ff3bb7a6c407d7ed87f2557a5a4 list = new List6c132ff3bb7a6c407d7ed87f2557a5a4(); 
   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 List6c132ff3bb7a6c407d7ed87f2557a5a4 GetListData(List6c132ff3bb7a6c407d7ed87f2557a5a4 list) 
  { 
   return list; 
  } 
  #endregion 
}
Code d'appel côté client

808c317fcb69cc1c8a796cf2f94d8f62 
b585974ae3b7dba3039af53a9593f9c4 
9edbc9f8a17547b211646280ef16fe6e 
22e6244c9f89e2a72231546ed5a2733f 
 b2386ffb911b14667cb8f0f91ea547a76e916e0f7d1e588d4f442bf645aedb2f 
 7415a4b80a7d8596d2716ae7bf1e0e2f2cacc6d41bbb37262a98f745aa00fbf0 
 8019067d09615e43c7904885b5246f0a 
 //参数为整数的方法 
  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'); 
    } 
   }); 
  } 
 2cacc6d41bbb37262a98f745aa00fbf0 
9c3bca370b5104690d9ef395f2c5f8d1 
6c04bd5ca3fcae76e30b72ad730ca86d 
 a56165225b53ae2239a99091f5fba8ce 
 e388a4556c0f65e1904146cc1a846bee 
  18907f9727f75b914a50dae593b7604594b3e26ee717c64999d7867364b1b4a3 
  3e3815dbfe676f4c0d8ab9a0f4283079 
  ff9d32c555bb1d9133a29eb4371c1213 
 9b7263d24baad11335c1e31fb2807a76f5a47148e367a6035fd7a2faa965022e 
 ff9d32c555bb1d9133a29eb4371c1213 
 61252de88165b46ea94f2085a508de08 
36cc49f0c466276486e50c850b7e4956 
73a6ac4ed44ffec12cee46588e518a5e
Je crois que vous avez lu cet article. Vous maîtrisez la méthode des cas. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Méthode JQuery pour obtenir la largeur et la hauteur de la page

Comment utiliser JS+jQuery pour vérifier les informations d'enregistrement

Explication détaillée des étapes pour obtenir la valeur radio avec jQuery

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn