一次$.getJSON不执行的简单记录

别人的代码,拿过来调,发现修改功能都不能用,修改时通过ajax发json获取数据的,看chrome开发者工具发现有发送数据,也有返回值;

发起请求并获取数据,发现回调函数不执行!

$.getJSON(site_url+'?m=test&a=getOne',{id:id},function(d){
  if(d.status){
    vardata=d.data;
    $('input[name="id"]').val(data.id);
    $('input[name="name"]').val(data.name);
  }else{
    Message.fairue(d.info);
    setTimeout(function(){
      // todo
    },2000);
  }
});

php返回数据代码:

if($findOne){
  $this->ajaxReturn($findOne,'success',true);
}else{
  $this->ajaxReturn($findOne,'faild',false);
}

返回的数据在浏览器里看上去也很正常:

{"data":{"id":"1","name":"admin",},"info":"success","status":true}

调了半天。。。

有人说是json格式的问题,有人说是参数的问题,本人js也不熟,排查后一一排除。。。

将浏览器返回json数据粘贴到vim时发现:

<feff>{"data":{"id":"1","name":"admin",},"info":"success","status":true}

<feff> ??? bomb。。。

附:vi bomb操作:

#添加BOM
:set bomb
#删除BOM
:set nobomb
#查询BOM
:set bomb?

查找当前目录下所有含有bomb的文件:

grep -I -r -l $'\xEF\xBB\xBF' ./

最后发现是 /Conf/config.php 有bomb,修改之。。。

项目框架:ThinkPHP

相关推荐