이 기사에서는 WCF 서비스를 호출하기 위해 jQuery의 ajax 구현 방법을 주로 소개합니다. jQuery의 ajax 프런트엔드 호출과 WCF 서비스의 백그라운드 대화형 호출을 완전한 예제 형태로 분석합니다. 또한 독자가 다운로드할 수 있는 완전한 예제도 함께 제공됩니다. 필요한 친구는 이를 참조할 수 있습니다. 이 기사의 다음
예제에서는 jQuery가 WCF 서비스를 호출하기 위해 Ajax를 구현하는 방법을 설명합니다. 참고로 자세한 내용은 다음과 같습니다.
AJAX 호출 WCF 서비스에는 교차 도메인 호출과 비 교차 도메인 호출이라는 두 가지 방법이 있습니다. 방법. DEMO는 VS2008로 작성되었습니다.
테스트 및 조사 결과 AJAX는 WCF 서비스를 호출할 때 다음 조건을 충족해야 하는 것으로 나타났습니다.
1 wcf의 통신 방법은 webHttpBinding
2을 사용해야 합니다. 노드를 설정해야 합니다
3. 서비스 구현 시 mark
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
4를 추가해야 합니다. ajax 메소드에 전달된 매개변수 이름은 매개변수 메소드와 일치해야 합니다. wcf 서비스에서 제공하는 이름
다음은 제가 작성한 코드, 마크의 색상 주의가 필요한 것은 서버측 설정 파일 코드입니다
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)]
서버측 코드
<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 ListGetList() { List list = new List (); 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 GetListData(List list) { return list; } #endregion }
위 내용은 모두의 학습에 도움이 되기를 바랍니다. PHP 중국어 웹사이트!
관련 권장 사항:
jQuery 다중 레벨 아코디언 메뉴 구현위 내용은 jQuery가 WCF 서비스를 호출하기 위해 Ajax를 구현하는 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!