微软的webservice太不给力了,.Net 2.0里只能返回xml,3.0以后才能返回json。客户端调用起来很不方便,鄙视下。不可能为了这个小功能我就升级到.Net3.0啊。这帮强盗!!!
假如我有一个名为WebService .asmx的webservice,里面有如下方法:
[WebMethod]
public string test()
{
return " {id:1,name:'TestName'} " ;
}
public string test()
{
return " {id:1,name:'TestName'} " ;
}
我想在前台页面通过jQuery调用此方法,然后将 返回的这个字符串作为JSON对象使用的话,客户端就应该如下编写:
<
script type
=
"
text/javascript
"
language
=
"
javascript
"
>
$(document).ready(
function ()
{
$( " #btn1 " ).click(
function ()
{
$.ajax({
type: " POST " ,
url: " webservice.asmx/test " ,
dataType: " xml " ,
data:{suggest: " txt " },
success: function (msg)
{
// 显示后台返回的数据
var returnText = msg.text;
var data = eval( ' ( ' + returnText + ' ) ' ); // 将字符串转换成JSON格式
$( " #divID " ).html(data.id);
$( " #divName " ).html(data.name);
}
});
}
);
}
);
< / script>
$(document).ready(
function ()
{
$( " #btn1 " ).click(
function ()
{
$.ajax({
type: " POST " ,
url: " webservice.asmx/test " ,
dataType: " xml " ,
data:{suggest: " txt " },
success: function (msg)
{
// 显示后台返回的数据
var returnText = msg.text;
var data = eval( ' ( ' + returnText + ' ) ' ); // 将字符串转换成JSON格式
$( " #divID " ).html(data.id);
$( " #divName " ).html(data.name);
}
});
}
);
}
);
< / script>
坑爹啊,有木有。这样一来,还不如直接写一个asp.net的页面,清空里面所有的HTML代码,然后像写PHP那样,直接往页面写JSON字符串来的利索,而且还可以直接设置ContentType为application/JSON。前台JQuery获取的值直接就是JSON啊。