超简单,关于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