一尘不染

SyntaxError:Object.parse(native)(AngularJS)位置0的JSON中的意外令牌<

angularjs

我已使用php脚本(save-data.php)将数据成功保存到json文件中,但无法使用get-data.php脚本正确获取数据。

错误消息: angular.js 12520语法 错误:
Object.parse(本地)位置0处的JSON中的意外令牌<

save-data.php

<?php

$json = file_get_contents("php://input");

$file = fopen('C:/test/save-data.json','w+');

fwrite($file, $json);

fclose($file);

?>

get-data.php

<?php

//header('Content-Type: application/json');

$json = file_get_contents('C:/test/save-data.json');

//Decode JSON
//$json_data = json_decode($json, true);

//Print data
echo $json

?>

save-data.json

{
  "id": "179",
  "var1": "variable1",
  "var2": "variable2"
}

样品控制器

// save data (myModel: id, var1, var2)
  $scope.save = function() {
    console.log('Creating a JSON');
    $scope.jsonString = angular.toJson($scope.myModel, true);
    $http.post('save-data.php', $scope.jsonString).then(function(data) {
      $scope.msg1 = 'Data saved';
    });
    $scope.msg2 = 'Data sent: '+ $scope.jsonString;
  };

// get data
  $scope.get = function() {
    $http.get('get-data.php').then(function(data) {
      //$scope.my_data = JSON.parse(data);
      console.log(data.data);
    });
  };

编辑:我不需要将json文件解码为json也不进行解析(所有脚本均已注释)。


阅读 405

收藏
2020-07-04

共1个答案

一尘不染

总是有99.9999999%Unexpected token < in JSON as position 0的错误发生,您没有从服务器收到json。之后,您收到了带有json的HTML错误消息。

<p>PHP warning: blah blah blah</p>
{"foo":"bar"}

领先<<p>...是在错误的来源,因为这是位置0(第一个字符)。

检查从服务器返回的原始数据,并修复任何错误/警告PHP随地吐痰。

2020-07-04