使用JQuery进行WCF通信的学习记录
2010-02-15 10:51 AnyKoro 阅读(324) 评论(0) 编辑 收藏 举报先架设一个wcf服务,然后,需要住的是在对应的协议上添加上:
1 | [OperationContract] [WebInvoke(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)] ForTestData DoTest(ForTestData testData); public class ForTestData { public ForTestData( string Name, int Age,List< string > Shoes) { this .Name = Name; this .Age = Age; this .Shoes = Shoes; } [DataMember] public string Name { get ; set ; } [DataMember] public int Age { get ; set ; } [DataMember] public List< string > Shoes { get ; set ; } }标注红色的两句很重要,分别表示开放该协议,以及说明该协议方法的接受参数和返回参数。这里我是用json的。当然为了,让这两个起作用,需要进行相关配置,写个serviceBehavior让其能enablewebscript,这里就不多说了。接下来就是前台的jquery的ajax应用了。这里需要注意的是 |
$.ajax({
url: url, //这里要写的是你开放ajax服务的地址,注意是开放ajax的那个endpoint的那个地址,有时候会有多个endpoint以用以分离不同的请求方式。同时在后面要跟上你要调用的操作名称,如:/service/ser.svc/dotest
data: json,
//这个json数据可以经过json2.js将JavaScript的对象处理成json数据,或者直接输入json数据,对于这个案例也就是要求最后的格式要形如{testData:{Name:"Tracy",Age:12,Shoes:["Nike","Adidas"]}},如果写数据有困难可以使用这个小软件jsonview
//使用这样的格式做为参数的时候一定要注意名字的统一,比如这里的testData,Name,Age,Shoes,都是和服务端的定义的名字强对应的,如果有一些不同,json数据就无法成功传输了。
type: "POST",
processData: false,
contentType: "application/json",
timeout: 10000,
dataType: "text", // not "json" we'll parse
success: function (res) {
//成功后的函数调用
},
error: function (xhr) {
//错误的函数调用
});
OK了。其他好像就没有什么问题了。基本要注意的就是这些了。
还有最重要的一点,返回的数据一定要和定义的完全一致。这点我感觉很纳闷,不知道是不是我搞错了。
意思就是,你如果返回的
subClass绝对不可以用parentClass代替。这样使得代码的灵活性下降很多。你如果这么写了,导致回传的数据格式和定义的(即开放出去的)不一样,导致ajax操作失败。
public class subClass:parentClass
{
...............................
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)