解决ajax的parsererror错误的一种办法(后台传给前台的数据json问题)

出现这个问题的原因是因为后台传给前台的数据出现了问题,ajax对于json的格式特别的严格

  下面是会出现这个问题的ajax请求

$.ajax({
    type: "GET",
    url: '{{url('/service/category')}}'+'/parent_id/' + parent_id,
    dataType: 'json',
    cache: false,
    success: function(data) {
      console.log("获取类别数据:");
      console.log(data);
      if(data == null) {
        $('.bk_toptips').show();
        $('.bk_toptips span').html('服务端错误');
        setTimeout(function() {$('.bk_toptips').hide();}, 2000);
        return;
      }
      if(data.status != 0) {
        $('.bk_toptips').show();
        $('.bk_toptips span').html(data.message);
        setTimeout(function() {$('.bk_toptips').hide();}, 2000);
        return;
      }
      $('.weui_cells_access').html('');
      for(var i=0; i<data.categorys.length; i++) {
        var next = '{{url('/product')}}'+'/category_id/' + data.categorys[i].id;
        var node = '<a class="weui_cell" href="' + next + '">' +
                        '<div class="weui_cell_bd weui_cell_primary">' +
                            '<p>'+ data.categorys[i].name +'</p>' +
                        '</div>' +
                        '<div class="weui_cell_ft"></div>' +
                    '</a>';
        $('.weui_cells_access').append(node);
      }
    },
    error: function(xhr, status, error) {
      console.log(xhr);
      console.log(status);
      console.log(error);
    }
  });

问题主要是出在了dataType:'json',这行代码,这行代码的意思就是接收回传的数据为json格式。这个时候,我们只需要删除这段代码,就会接收到字符串格式的数据,然后再进行转换成json格式,下面是代码

$.ajax({
    type: "GET",
    url: '{{url('/service/category')}}'+'/parent_id/' + parent_id,
    cache: false,
    success: function(data) {
      data=eval('('+data+')');
      console.log("获取类别数据:");
      console.log(data);
      if(data == null) {
        $('.bk_toptips').show();
        $('.bk_toptips span').html('服务端错误');
        setTimeout(function() {$('.bk_toptips').hide();}, 2000);
        return;
      }
      if(data.status != 0) {
        $('.bk_toptips').show();
        $('.bk_toptips span').html(data.message);
        setTimeout(function() {$('.bk_toptips').hide();}, 2000);
        return;
      }
      $('.weui_cells_access').html('');
      for(var i=0; i<data.categorys.length; i++) {
        var next = '{{url('/product')}}'+'/category_id/' + data.categorys[i].id;
        var node = '<a class="weui_cell" href="' + next + '">' +
                        '<div class="weui_cell_bd weui_cell_primary">' +
                            '<p>'+ data.categorys[i].name +'</p>' +
                        '</div>' +
                        '<div class="weui_cell_ft"></div>' +
                    '</a>';
        $('.weui_cells_access').append(node);
      }
    },
    error: function(xhr, status, error) {
      console.log(xhr);
      console.log(status);
      console.log(error);
    }
  });

data=eval('('+data+')');//这段代码就是将字符串转换成json格式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值