相信大家都比较了解JSON格式的数据对于ajax的方便,不了解的可以从网上找一下这方面的资料来看一下,这里就不多说了,不清楚的可以在网上查一下,这里只说一下因为参数设置不当引起的取不到返回值的问题。
在用jQuery调用WebService的时候,它contentType默认为
以下是WebService服务端的代码:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.Services; 6 using System.IO; 7 using System.Web.Script.Serialization; 8 using System.Web.Script.Services; 9 10 namespace WebService 11 { 12 /// <summary> 13 /// CallWebService 的摘要说明 14 /// </summary> 15 [WebService(Namespace = "http://www.qiandabao.com/")] 16 [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 17 [System.ComponentModel.ToolboxItem(false)] 18 // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 19 //[System.Web.Script.Services.ScriptService] 20 public class CallWebService : System.Web.Services.WebService 21 { 22 23 [WebMethod] 24 public string ws() 25 { 26 return "test"; 27 } 28 } 29 }
下面是客户端调用WebService时的代码:
1 $.ajax({ 2 type: "POST", 3 //dataType: "json", 4 //contentType: "application/json; charset=utf-8", 5 url: "http://localhost:8007/CallWebService.asmx/ws", 6 data:"", 7 success: function (data) { 8 alert(data.d); 9 }, 10 error: function (data) { 11 //alert(data.responseText); 12 } 13 });
上面这段js返回的是xml格式的数据:
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://www.qiandabao.com/">test</string>
如果不指定contentType,WebService返回的就是xml格式的数据,