我使用 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/