Jquery 调用.net WebService 返回Json、XML方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Jquery 调用.net WebService 返回Json、XML方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3311字,纯文字阅读大概需要5分钟。
内容图文
由于项目需要,使用前端、手机客户端调用ASP.NET的Webservice来获取信息.所以这段时间重温一下Jquery与Web Serivce,过程中碰到不少问题,也有不少的收获。
Service代码
[WebMethod] public string HelloWorld() { return "Hello World"; } [WebMethod] public string myMethod(string para) { return "Hi," + para; } [WebMethod] [ScriptMethod(UseHttpGet = true)] public string myMethod1(string para) { return "Hi," + para; }
Web端调用方法
1.Json POST方法(有参)
$.ajax({ url: "WebServer.asmx/myMethod", contentType: "application/json;charset=utf-8", beforeSend: function (x) { x.setRequestHeader("Content-Type", "application/json;charset=utf-8"); }, data: "{para:‘post参数‘}", dataType: "json", type: "POST", error: function (x, e) { alert(x.responseText); }, success: function (json) { alert(json.d); } });
注意:1) ajax中的data:"{paraName:paraValue}",如果该方法无参数,则格式为:data:"{}",再次注意还有红色的两引号,不可少
2) 如果成功,我是以HTML的形式显示它的值,大家可以用其它方法,取它的值时用(result.d)
2.Json GET方法(有参)
$.ajax({ url: "webserver.asmx/myMethod1", data: "para=‘get参数‘", type: "GET", contentType: "application/json;charset=utf-8", dataType: "json", error: function (x, e) { alert(x.responseText); }, success: function (json) { alert(json.d); } });
注意:1) ajax中的data:"para=paraValue",如果有汉字的参数值,可以使用encodeURI编一下码,如果该方法无参数,则格式为:data:""
2) 如果成功,取它的值时用(result.d)
3.XML POST方法(有参)
$.ajax({ url: "webserver.asmx/myMethod", data: {para: ‘post参数‘}, type: "POST", dataType: "application/xml", error: function (x, e) { alert(x.responseText); }, success: function (xml) { alert(xml); } });
这块,data中的para的值为值类型,去掉单引号也可以,不会报错,小弟特意测试过,如果你们去掉后出错了,请给小弟留言说明,当para的值为string类型时,单引号不可去掉,如果是中文最好编一下码,操作成功后返回XML文档,其他地方就没什么可说的了。
4.XML GET 方法 (有参)
$.ajax({ url: "webserver.asmx/myMethod1", data: encodeURI("para=Post参数"), type: "GET", dataType: "application/xml", error: function (x, e) { alert(x.responseText); }, success: function (xml) { alert(xml); } });
这里需要注意,ajax中的data:"para=paraValue",如果有汉字的参数值,最好encodeURI编一下码,操作成功后返回XML文档。
5.XML SOAP POST方法
function getPostData() { //根据WSDL分析myMethod是方法名,para是传入参数名 var postdata = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"; postdata += "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"; postdata += "<soap:Body>"; postdata += "<myMethod xmlns=\"http://tempuri.org/\">"; postdata += "<para>"+"aa"+"</para>"; postdata += "</myMethod>"; postdata += "</soap:Body>"; postdata += "</soap:Envelope>"; return postdata; }
$.ajax({ type: "POST", url: "webserver.asmx", data: getPostData(), dataType: "xml", contentType: "text/xml; charset=utf-8", beforeSend: function (xhr) { xhr.setRequestHeader(‘SOAPAction‘, ‘http://tempuri.org/myMethod‘); }, success: function (xml) { $(xml).find("myMethod_XMLResult").each(function (i) { alert($(this).children("Title").text()); }); }, error: function (x, e) { alert(‘error:‘ + x.responseText); }, complete: function (x) { //alert(‘complete:‘+x.responseText); } });
使用SOAP协议时,请注意上面POST的地址后面并没有像请求JSON数据时一样加上/方法名,而SOAPAction的方法名前面还需要加上命名空间,操作成功后返回的是一个XML格式对象而不是XML文档,可以使用JS来解析XML对象
总结:
1.使用POST方法时,要注意data的参数格式
2.参数中有汉字时最好encodeURI编码
3.使用SOAP时,注意POST地址后面没有/方法名,并且需要在SOAPAction的方法名前面还需要加上命名空间,否则会报错
以上是小弟参考各位大神资料及自己在测试中的问题解决的总结,如有错请指正。
原文:http://www.cnblogs.com/sa9527/p/4222619.html
内容总结
以上是互联网集市为您收集整理的Jquery 调用.net WebService 返回Json、XML方法全部内容,希望文章能够帮你解决Jquery 调用.net WebService 返回Json、XML方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。