判断ajax返回是否为json格式并处理

2019-06-15 10:04:20 浏览2161次 作者: 旋风

收藏

首先先上js代码,这里要注意,由于我用的是jquery的ajax,所以你想使用需要引用jquery.

1.判断是否为json的JavaScript:

function isJSON(str) {
    if (typeof str == 'string') {
        try{
            var obj=JSON.parse(str);
            if(str.indexOf('{')>-1){
                return 1;
            }else{
                return 0;
            }
        }catch(e){
            return 0;
        }
    }
    return 0;
}

2.页面上使用上面的方法:


function buy_product(id,cate){
	layer.confirm('您确定要购买该商品吗?',{btn: ['确定', '取消'],title:"提示"}, function(){
		$.ajax({
			type: 'POST',
			url: "/index.php/Index/1.html",
			dataType: "html",
			data: "id="+id+"&cate="+cate,
			success:function(responsestr){
				var str = isJSON(responsestr);
				if(str==1){
					var obj=JSON.parse(responsestr);
					if(obj.s==10){
						layer.msg('成功!',{shade:0.6,time:1000,end:function(){
							$(".shop_section3").show();return false;
						}});
					}else if(obj.s==2){
						layer.alert(obj.msg,{icon: 1,shade:0.8,end:function(){
							window.location.href="/index.php/Login/2.html";
						}});return false;
					}else if(obj.s==3){
						layer.alert(obj.msg,{icon: 1,shade:0.8,end:function(){
							window.location.href="/index.php/My/3.html";
						}});return false;
					}else{
						layer.alert(obj.msg,{shade:0.2});return false;
					}
				}else{
					layer.alert('系统正忙,请稍后再试!',{shade:0.2});
				}
			},
			error:function(){
				layer.alert('系统繁忙,请稍后再试!',{shade:0.2});
			}
		});
	});
}

程序里面这样写:

/*开始首页商品购买*/
	public function buyproduct(){
		$id = intval($_POST['id']);
		$cid= intval($_POST['cate']);
		/*用户有没有登陆*/
		if(empty($_SESSION['fid'])){
			$ary = array('s'=>2,'msg'=>'请您先登录!');
			echo json_encode($ary);exit;
		}
		//.......
	}

专门摘出来看一下:

$.ajax({
            type: 'POST',
            url: "{:U('Set/transpoint')}",
            dataType: "html",
            data: "num="+num+"&tel="+tel,
            success:function(responsestr){
                var str = isJSON(responsestr);
                if(str==1){
                    var obj=JSON.parse(responsestr);
                    if(obj.s==10){
                        layer.msg('成功!',{shade:0.6,time:1000,end:function(){
                            return false;
                        }});
                    }else{
                        layer.alert(obj.msg,{shade:0.2});return false;
                    }
                }else{
                    layer.alert('系统正忙,请稍后再试!',{shade:0.2});
                }
            },
            error:function(){
                layer.alert('系统繁忙,请稍后再试!',{shade:0.2});
            }
        });


当您发现内容错误或代码bug,以及下载链接无法使用等,请点击屏幕右下角的上报错误来进行提交,我们会尽快修正。
本程序所有源码和工具完全免费,当本网站内容如果侵犯了您的权益,请联系我们,我们会尽快处理,感谢您的合作。

收藏 分享

相关文章

评论:

文明上网理性发言,请遵守 新闻评论服务协议

当前还没有评论,快来评论吧

上报错误