qnick_common.js

js公共函数库 文件位置: /resource/static/default/js/qnick_common.js

checkCallback(data, type)

可以用来检查数据是否是json格式
/**
 * [判断Callback格式,是json还是text,第二个参数默认为json,可省略]
 * @param  {[type]} data [description]
 * @param  {[type]} type [description]
 * @return {[type]}      [description]
 */
function checkCallback(data, type){    
    if(type == undefined){
        type = 'json';
    }

    if(type == 'json'){
        try {
            (new Function("return " + data))(); 
            return true;
        } catch (e) {
            return false;
        }
    }else if(type == 'text'){
        try {
            (new Function("return " + data))(); 
            return false;
        } catch (e) {
            return true;
        }
    }
}

使用方法

1) 方法调用测试

    var str1 = "{'a':'123','b':'abc'}";
    var str2 = "abc";
    var obj1=checkCallback(str1);
    var obj2=checkCallback(str2);
    console.log(obj1);
    console.log(obj2);

结果

true
false

2)项目应用

    $.ajax({
        url:'<?=site_url('?')?>',
        dataType: "json",   //返回格式为json
        async: true, //请求是否异步,默认为异步,这也是ajax重要特性
        data: { "id":id},    //参数值
        type: "POST",   //请求方式
        beforeSend: function() {
            //请求前的处理
        },
        success: function(data) {
            if(checkCallback(data,'json')){
                layer.msg(data.msg);
            }else{
                alert(data);
            }
        },
        complete: function() {
            //请求完成的处理
        },
        error: function() {
            //请求出错处理
            layer.alert('提交失败!');
        }
    });