2016-10-01 75 views
-2

使用Angular.js和PHP删除我的数据后,出现以下错误。使用Angular.js获取SyntaxError:意外令牌

Error:

angular.min.js:118 SyntaxError: Unexpected token < in JSON at position 0 
    at Object.parse (native) 
    at xc (http://localhost/sunil/assets/js/angular.min.js:16:379) 

我下面解释我的代码。

$scope.deleteData=function(id){ 
     $http.post("model/add.php", { 
      'id':id, 
      'action':'Delete' 
     }).success(function(data,status,headers,config){ 
      console.log('add data',data,JSON.parse(data)); 
      if(data.msg !=""){ 
       $rootScope.msg = data.msg; 
       $rootScope.alertclass = "alert-success"; 
       $scope.dataList.splice(id, 1); 
      }else{ 
       $rootScope.msg = data.error; 
       $rootScope.alertclass = "alert-danger"; 
      } 
     }); 
    } 

if($data->action == 'Delete'){ 
     $data_id = $data->id; 
     // echo ($data_id);exit; 
     $deleteQry = "DELETE FROM ang_user WHERE id='$data_id'"; 
     $result = $conn->query($deleteQry); 
     if ($result) { 
      $arr = array('msg' => "Data Deleted Successfully!!!", 'error' => ''); 
     } else { 
      $arr = array('msg' => "", 'error' => 'Error In Deleting record'); 
     } 
    } 
    $json = json_encode($arr); 
    print_r($json); 

数据从数据库中删除,但在成功函数里面它抛出这个错误。请帮我解决这个错误。

+0

'console.log('add data'+ data + JSON.parse(data));'而不是',' –

+0

显然,您尝试解析的数据无效JSON。它有一个'<',其中一个不是预期的。如果您不显示JSON,我们无法帮助您。您的代码显示您将它写入控制台。那么,它是什么样子? –

+0

@Loading ..:不,OP的做法会更有用。 'console.log'以最适合其数据类型的方式单独输出每个参数;用'+'将它们全部一起清除可能会隐藏有用的信息。但真正要做的是使用调试器。 –

回答

1

尝试这样做,第一:

console.log(data); 

如果这提供了一个有效的字符串格式,那么你JSON.parse(data)会工作。但很明显,这不是这种情况。

例如, JSON.parse('{"1": 1, "2": 2}')将工作,但不会JSON.parse({"1": 1, "2": 2})

+0

控制台消息没有执行。在此错误发生之前。 – subhra

+0

如果你注释掉这一行'console.log('add data',data,JSON.parse(data));' – nikjohn

+0

实际上是这种类型'$ arr = array('msg'=>“数据成功删除! !!“,'error'=>'');'给出那个错误的消息。当我写'echo $ data_id'它正常的时候。 – subhra