javascript - SyntaxError : Unexpected token < in JSON at position 0 at Object. 解析( native )(AngularJS)

标签 javascript php angularjs json

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

错误消息: angular.js:12520 SyntaxError: JSON 中 Object.parse 位置 0 处的意外标记 <( native )

保存数据.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

?>

保存数据.json:

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

示例 Controller :

// 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 也不需要对其进行解析(全部在脚本中注释)。

最佳答案

总是有 99.9999999% 的时间你得到 Unexpected token < in JSON as position 0在错误中,您没有从服务器收到 json。之后您收到了一条 HTML 错误消息和您的 json。

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

龙头<<p>...是错误的来源,因为那是位置 0(第一个字符)。

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

关于javascript - SyntaxError : Unexpected token < in JSON at position 0 at Object. 解析( native )(AngularJS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37948990/

相关文章:

javascript - Vue JS this.$set 不更新 react 性

php - Yii2 $this->registerJs($js);如何在 $js 中传递 php 变量

php - 使用第一个查询中的变量从第二个查询中获取结果时出错

php - 电子邮件未从 mysql 数据库表中的行中获取用户名字

javascript - 您可以在创建时将参数传递给 AngularJS Controller 吗?

javascript - 通过指令将动态变量传递到 Controller 函数中

javascript - 面向个人用户的带有 Node.js 和 Socket.io 的 Pubsub

javascript - React Refs 值得 setState 给出超过最大更新深度。

javascript - Angularjs - Controller 多次调用 init() 函数

html - 隐藏和显示列的 th 和 td 宽度变化