Maison interface Web js tutoriel jQuery调用RESTful WCF示例代码(GET方法/POST方法)_jquery

jQuery调用RESTful WCF示例代码(GET方法/POST方法)_jquery

May 16, 2016 pm 05:02 PM
restful

不废话了,直奔主题吧

wcf端:

近几年比较流行restful,为了能让ajax调用,同时也为了支持restful风格的uri,在创建一个Ajax-enabled Wcf Service后,必须手动修改svc文件,指定Factory,即:

Factory="System.ServiceModel.Activation.WebServiceHostFactory" %>

注:如果不添加Factory,则wcf将无法用类似http://localhost/helloWorld.svc/Hello/person/name 的restful方式直接访问。

同时还要去掉web.config中的即类似:


   
     
       
         
       

     

   

          multipleSiteBindingsEnabled="true" />
   
     
                  binding="webHttpBinding" contract="ajaxSample.HelloWorld" />
     

   

 

好了,开始写代码,鉴于wcf调用时有GET/POST二种方式,下面把几种常用的情况都写一个示例方法:

复制代码 代码如下:

using System.Collections.Generic;
using System.ServiceModel;
using System.ServiceModel.Activation;
using System.ServiceModel.Web;

namespace ajaxSample
{
    [ServiceContract(Namespace = "http://yjmyzz.cnblogs.com/")]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class HelloWorld
    {

        ///
        /// 只能Post的Restful方法
        ///

        ///
        ///
        ///
        [OperationContract]
        [WebInvoke(Method = "POST", UriTemplate = "PostRestfulTest/{person}/{welcome}", ResponseFormat = WebMessageFormat.Json)]
        public List PostRestfulTest(string person,string welcome)
        {
            List result = new List();

            result.Add("PostRestfulTest -> from server:");
            result.Add(person);
            result.Add(welcome);
            return result;
        }

        ///
        /// 只能Get的Restful方法
        ///

        ///
        ///
        ///
        [OperationContract]
        [WebInvoke(Method = "GET", UriTemplate = "GETRestfulTest/{person}/{welcome}", ResponseFormat = WebMessageFormat.Json)]
        public List GETRestfulTest(string person, string welcome)
        {
            List result = new List();

            result.Add("GETRestfulTest -> from server:");
            result.Add(person);
            result.Add(welcome);
            return result;
        }

        ///
        /// 即可Get与Post的Restful方法
        ///

        ///
        ///
        ///
        [OperationContract]
        [WebInvoke(Method = "*", UriTemplate = "RestfulTest/{person}/{welcome}", ResponseFormat = WebMessageFormat.Json)]
        public List RestfulTest(string person, string welcome)
        {
            List result = new List();

            result.Add("RestfulTest -> from server:");
            result.Add(person);
            result.Add(welcome);
            return result;
        }

 
        ///
        /// 只能Post的常规方法(注:Post方式,BodyStyle必须设置成WrappedRequest或Wrapped)
        ///

        ///
        ///
        ///
        [OperationContract]
        [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, BodyStyle=WebMessageBodyStyle.WrappedRequest)]
        public List PostTest(string person, string welcome)
        {
            List result = new List();

            result.Add("PostRestfulTest -> from server:");
            result.Add(person);
            result.Add(welcome);
            return result;
        }

        ///
        /// 只能Get的常规方法
        ///

        ///
        ///
        ///
        [OperationContract]
        [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json)]
        public List GETTest(string person, string welcome)
        {
            List result = new List();

            result.Add("GETTest -> from server:");
            result.Add(person);
            result.Add(welcome);
            return result;
        }

         

         
    }
}

jQuery调用代码:
复制代码 代码如下:



有时候,WCF暴露的方法中可能需要一些敏感信息做为参数(比如用户名/用户ID之类),这时如果直接用js来调用wcf,可能会把这部分信息泄漏在客户端,这种场景下,我们也经常用一个服务端的ashx来做中转

TestService.svc

复制代码 代码如下:

using System.ServiceModel;

namespace ashx_jQuery
{
     [ServiceContract]
    public class TestService 
    {
         ///
         /// 获取当前用户指定月份的工资
         ///

         ///
         ///
         ///
         [OperationContract]
        public double GetSalary(int userId,int month)
        {
            if (month == 1)//只是演示而已
            {
                return 5000;
            }
            else
            {
                return 1000;
            }
        }
    }
}

AjaxProcess.ashx
复制代码 代码如下:

using System.Web;

namespace ashx_jQuery
{
    ///
    /// Summary description for AjaxProcess
    ///

    public class AjaxProcess : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            string month = context.Request["month"];

            TestService wcf = new TestService();
            double salary = wcf.GetSalary(GetUserId(), int.Parse(month));
            context.Response.Write("{salary:" + salary + "}");
        }

 
        ///
        /// 获取当前的用户ID
        ///

        ///
        private int GetUserId() 
        {
            return 1;
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

jQuery调用:
复制代码 代码如下:






    jQuery ashx Sample
   
   


   

       
   




示例代码:点击下载 
Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Flask-RESTful et Swagger : meilleures pratiques pour créer des API RESTful dans les applications Web Python (partie 2) Flask-RESTful et Swagger : meilleures pratiques pour créer des API RESTful dans les applications Web Python (partie 2) Jun 17, 2023 am 10:39 AM

Flask-RESTful et Swagger : meilleures pratiques pour créer des API RESTful dans des applications Web Python (partie 2) Dans l'article précédent, nous avons exploré les meilleures pratiques pour créer des API RESTful à l'aide de Flask-RESTful et Swagger. Nous avons présenté les bases du framework Flask-RESTful et montré comment utiliser Swagger pour créer la documentation d'une API RESTful. Livre

Développement d'API RESTful avec Laravel : créer des services Web modernes Développement d'API RESTful avec Laravel : créer des services Web modernes Aug 13, 2023 pm 01:00 PM

Développement d'API RESTful avec Laravel : créer des services Web modernes Avec le développement rapide d'Internet, la demande de services Web augmente de jour en jour. En tant qu'architecture de service Web moderne, RESTfulAPI est légère, flexible et facile à développer, elle a donc été largement utilisée dans le développement Web. Dans cet article, nous présenterons comment utiliser le framework Laravel pour créer une API RESTful moderne. Laravel est un langage PHP

Construire une API RESTful à l'aide de Django Construire une API RESTful à l'aide de Django Jun 17, 2023 pm 09:29 PM

Django est un framework Web qui facilite la création d'API RESTful. RESTfulAPI est une architecture Web accessible via le protocole HTTP. Dans cet article, nous présenterons comment utiliser Django pour créer des API RESTful, notamment comment utiliser le framework DjangoREST pour simplifier le processus de développement. Installer Django Tout d'abord, nous devons installer Django localement. Vous pouvez utiliser pip pour installer Django, en particulier

Comment utiliser Python Flask RESTful Comment utiliser Python Flask RESTful Apr 29, 2023 pm 07:49 PM

1. Présentation de RESTful Le style REST (RepresentationalStateTransfer) est un style de conception d'applications Web orienté ressources qui suit certains principes de conception pour que les applications Web aient une bonne lisibilité, évolutivité et maintenabilité. Expliquons en détail chaque aspect du style RESTful : Identifiant de ressource : Dans le style RESTful, chaque ressource possède un identifiant unique, généralement une URL (UniformResourceLocator). Les URL sont utilisées pour identifier l'emplacement des ressources afin que les clients puissent y accéder à l'aide du protocole HTTP. Par exemple, une simple URL pourrait être : http

Étapes pour créer une API RESTful à l'aide de PHP Étapes pour créer une API RESTful à l'aide de PHP Jun 17, 2023 pm 01:01 PM

Avec le développement et la popularité d’Internet, les applications web et les applications mobiles deviennent de plus en plus courantes. Ces applications doivent communiquer avec le serveur backend et obtenir ou soumettre des données. Dans le passé, la manière conventionnelle de communiquer consistait à utiliser SOAP (Simple Object Access Protocol) ou XML-RPC (XML Remote Procedure Call). Cependant, au fil du temps, ces protocoles sont devenus trop lourds et complexes. Les applications modernes nécessitent des API plus légères et plus simples pour communiquer. RESTfulAPI (AP de conversion d'état de la couche de présentation

Bonnes pratiques pour développer des services RESTful avec Beego Bonnes pratiques pour développer des services RESTful avec Beego Jun 23, 2023 am 11:04 AM

Dans l'environnement actuel d'innovation continue dans les technologies de l'information, l'architecture RESTful est populaire dans diverses applications WebAPI couramment utilisées et est devenue une tendance émergente en matière de développement de services. En tant que framework Web hautes performances et facile à étendre dans Golang, le framework Beego est largement utilisé dans le développement de services RESTful en raison de ses avantages de haute efficacité, de facilité d'utilisation et de flexibilité. Ce qui suit fournira des références aux développeurs du point de vue des meilleures pratiques pour développer des services RESTful dans Beego. 1. Conception de routage dans REST

Méthode de conception et de mise en œuvre de l'API RESTful Méthode de conception et de mise en œuvre de l'API RESTful Jun 22, 2023 pm 04:07 PM

RESTfulAPI est un style de conception d'API couramment utilisé dans l'architecture Web actuelle. Son concept de conception est basé sur la méthode standard du protocole HTTP pour compléter la représentation et l'interaction des ressources Web. Au cours du processus de mise en œuvre, l'API RESTful suit une série de règles et de contraintes, notamment la mise en cache, la séparation serveur-client, l'apatridie, etc. Ces règles garantissent la maintenabilité, l'évolutivité, la sécurité et la facilité d'utilisation de l'API. Ensuite, cet article présentera en détail la conception de RESTfulAPI et sa mise en œuvre.

Comment développer une API basée sur RESTful à l'aide de Java Comment développer une API basée sur RESTful à l'aide de Java Sep 21, 2023 pm 03:53 PM

Comment utiliser Java pour développer une API basée sur RESTful RESTful est un style architectural basé sur le protocole HTTP. Il utilise les méthodes GET, POST, PUT, DELETE et autres du protocole HTTP pour exploiter les ressources. Dans le développement Java, certains frameworks peuvent être utilisés pour simplifier le processus de développement de l'API RESTful, comme SpringMVC, Jersey, etc. Cet article vous présentera en détail comment utiliser Java pour développer un système basé sur RESTful.

See all articles