jQuery调用RESTful WCF示例代码(GET方法/POST方法)_jquery
不废话了,直奔主题吧
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中的
好了,开始写代码,鉴于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
{
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
{
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
{
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
{
List
result.Add("PostRestfulTest -> from server:");
result.Add(person);
result.Add(welcome);
return result;
}
///
/// 只能Get的常规方法
///
///
///
///
[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json)]
public List
{
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调用:
示例代码:点击下载

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Flask-RESTful和Swagger:Pythonweb应用程序中构建RESTfulAPI的最佳实践(第二部分)在上一篇文章中,我们探讨了如何使用Flask-RESTful和Swagger来构建RESTfulAPI的最佳实践。我们介绍了Flask-RESTful框架的基础知识,并展示了如何使用Swagger来构建RESTfulAPI的文档。本

使用Laravel进行RESTfulAPI开发:构建现代化的Web服务随着互联网的快速发展,Web服务的需求日益增加。而RESTfulAPI作为一种现代化的Web服务架构方式,具备轻量、灵活、易扩展的特点,因此在Web开发中得到了广泛应用。在本文中,我们将介绍如何使用Laravel框架来构建一个现代化的RESTfulAPI。Laravel是PHP语言中

Django是一个Web框架,可以轻松地构建RESTfulAPI。RESTfulAPI是一种基于Web的架构,可以通过HTTP协议访问。在这篇文章中,我们将介绍如何使用Django来构建RESTfulAPI,包括如何使用DjangoREST框架来简化开发过程。安装Django首先,我们需要在本地安装Django。可以使用pip来安装Django,具体

一、RESTful概述REST(RepresentationalStateTransfer)风格是一种面向资源的Web应用程序设计风格,它遵循一些设计原则,使得Web应用程序具有良好的可读性、可扩展性和可维护性。下面我们来详细解释一下RESTful风格的各个方面:资源标识符:在RESTful风格中,每个资源都有一个唯一的标识符,通常是一个URL(UniformResourceLocator)。URL用于标识资源的位置,使得客户端可以使用HTTP协议进行访问。例如,一个简单的URL可以是:http

随着互联网的发展和普及,Web应用程序和移动应用程序越来越普遍。这些应用程序需要与后端服务器进行通信,并获取或提交数据。在过去,常规的通信方式是使用SOAP(简单对象访问协议)或XML-RPC(XML远程过程调用)。然而,随着时间的推移,这些协议被认为过于笨重和复杂。现代应用程序需要更加轻巧和直接的API来进行通信。RESTfulAPI(表现层状态转化AP

在当下信息技术不断创新的环境下,RESTful架构风靡于各种常用的WebAPI应用之中,成为了新兴的服务开发趋势。而Beego框架作为Golang中一款高性能、易扩展的Web框架,出于其高效、易用、灵活等优点,被广泛应用于RESTful服务的开发中。下文将从Beego开发RESTful服务的最佳实践的角度,为广大的开发者提供一些参考。一、路由设计在REST

RESTfulAPI是目前Web架构中较为常用的一种API设计风格,它的设计理念是基于HTTP协议的标准方法来完成Web资源的表示与交互。在实现过程中,RESTfulAPI遵循一系列规则和约束,包括可缓存、服务器-客户端分离、无状态性等,这些规则保证了API的可维护性、扩展性、安全性以及易用性。接下来,本文将详细介绍RESTfulAPI的设计及其实现方

如何使用Java开发一个基于RESTful的APIRESTful是一种基于HTTP协议的架构风格,通过使用HTTP协议的GET、POST、PUT、DELETE等方法来实现对资源的操作。在Java开发中,可以使用一些框架来简化RESTfulAPI的开发过程,如SpringMVC、Jersey等。本文将向您详细介绍如何使用Java开发一个基于RESTful的
