我正在从PHP文件中获取一些JavaScript格式的JSON数据。
要使用这些数据,我使用JSON.parse(json_response),除了在PHP中使用JSON头之外,它都可以工作:header('Content-Type: application/json');
当使用时,我在控制台中得到以下消息:
未捕获的SyntaxError:JSON中位置%1处的意外令牌o
目前,我只是在使用PHPheader()还是使用JSJSON.parse()之间进行选择,并发现了这个有用的问题。
设置一个JSON header看起来像是为我的JS脚本“自动解析”JSON。这是正常的行为吗?这可能是什么原因造成的?
我该怎么办?在header()和json.parse()之间随机选择可能不是一个好主意。
实际代码:
index.chart.php:<?php
header('Content-Type: application/json');
// [...]
// Dummy data for Chart.js
$data = [
'labels' => ['test', 'a', 'z', 'e', 'r', 't'],
'datasets' => [
[
'label' => 'First',
'backgroundColor' => 'rgb(63, 123, 249)',
'borderColor' => 'rgb(31, 117, 219)',
'data' => [
20, 10, 30, 45, 51.2, 5
],
'fill' => false
]
]
];
echo json_encode($data);
?>
index.chart.js:window.addEventListener('DOMContentLoaded', function () {
// jQuery Ajax
$.get('assets/inc/index.chart.php').done(function (json) {
var response = JSON.parse(json);
console.log(response);
}).fail(function (error) {
window.console.log(error);
});
});