超简单,关于jquery如何得到asmx的返回值
- JScript code
$.ajaxSendMsg = function(data, fnSuccess, fnError) { $.ajax({ type: "POST", url: "xxx", contentType: "application/json; charset=utf-8", dataType: "json", data: data, cache: false, success: fnSuccess, erro: fnError });前台程序
- JScript code
$.ajaxSendMsg(paramData, function(data) { alert(data); // 无值 alert(data.d); // 返回的String值 var result = data.d.find("msg").text(); // 执行出错,呵呵,不懂 alert(result); return;后台asmx里面
- C# code
[WebMethod] /// <summary> /// sendMessage, send message /// </summary> public String sendMessage(int chatId, int sendType, String msgData) { return “test"; }问题1:为什么后台返回String,前台要用data.d才能取得?.d表示什么意思啊,还有find是什么意思啊,这个算jquery还是html还是方法撒
问题2:如果后台返回的是一个自定义类对象,前台怎么取得呢?是不是要做特殊处理啊
问题3:查了很多资料,很乱,像我现在这样的写法,前台一直取不到值,应该查什么资料看撒,
[解决办法]
2.序列化成JSON字符串
[解决办法]
[解决办法]
1.data.d 这是json对象取值的方式。返回的数据格式是json,jquery帮你自动序列化了。
也可以使用data["d"]索引的方式取值,可以把json当作对象的数组。
find是jquery里面封装的一个函数,可以方便查找。详细的你查考jquery api文档。
2.如果后台WS返回的是对象,jquery 会自动帮你序列化成json对象的。
假如你返回的是一个Person类(里面包含id、name两个属性)的对象,你可以使用Data.name或者Data["name"]
去取值,很方便的。
3.你先理解什么是json数据格式吧。然后再熟悉jquery 的API文档。
[解决办法]
参考
jQuery通过调用webservice返回json数据的问题
这里有详细介绍
更多问题参考
jquery webservice json