[jQuery] 关于使用 ajax 时处理返回的数据

这里作个记录平时使用的经验:

 

/*************************************

假设正确的返回值格式为:
{"state":1,"msg":"return_message"}

************************************
*/
$.ajax({
    'type': 'POST',
    'dataType': 'json',//注意这里使用了 json
    'url':'http://www.test.com/', 
    'data': 'your_data=your_data',
    success: function(data){
        try
        {
            if (data.state == 1)
            {
                //处理
            }
            else
            {
                //处理
            }
        }
        catch (err)
        {
            alert(err);
        }
    },
    error: function(data){
        //这里不能使用 data.msg 来获取返回的信息
        //因为只要返回的数据格式不是 json,都会跑到这里
        var msg = '网络错误,请重新尝试';
        alert(msg);
    }
});

/*****************************************

返回值有可能是 json,也有可能不是 json

*****************************************
*/
$.ajax({
    'type': 'POST',
    'dataType': 'json',//注意这里使用了 json
    'url':'http://www.test.com/', 
    'data': 'your_data=your_data',
    success: function(data){
        try
        {
            if (data.state == 1)
            {
                //处理
            }
            else
            {
                //处理
            }
        }
        catch (err)
        {
            alert(err);
        }
    },
    error: function(data){
        var msg = '网络错误,请重新尝试';
        //如果是 json 格式
        if (data.match("^\{(.+:.+,*){1,}\}$"))
        {
            data = eval("("+data+")");
            msg = data.msg;
        }
        alert(msg);
    }
}); 
posted @ 2012-02-10 15:23  DavidHHuan  阅读(891)  评论(0编辑  收藏  举报