我收到此错误(根据Safari的Web检查员),但我不明白为什么。大多数关于此错误的报告都表明它正在某处读取HTML标签......但我看不到它。
var oReq = new XMLHttpRequest(); //New request object
oReq.onload = function() {
document.getElementById("myConsole").innerHTML = this.responseText;
myData = JSON.parse(this.responseText);
...
第三行代码将responseText转储到我的网页上(转换为名为'myConsole'的DIV)。这表明我认为是标准的JSON代码......并且不包含'<'字符。
第二行代码尝试解析responseText并给出'<'令牌错误。
php数据源如下所示:
$rowCount = 0;
do { $rowCount += 1;
$dbCurrentRow = $resultSet->fetch_assoc();
$seats[$rowCount]['room'] = $dbCurrentRow['Room'];
$seats[$rowCount]['seat'] = $dbCurrentRow['Seat'] * 1;
$seats[$rowCount]['x'] = $dbCurrentRow['x'] * 1;
$seats[$rowCount]['y'] = $dbCurrentRow['y'] * 1;
$seats[$rowCount]['name'] = "Joe Bloggs";
$seats[$rowCount]['adno'] = "01234";
$seats[$rowCount]['ev6'] = true;
$seats[$rowCount]['eal'] = true;
$seats[$rowCount]['dpLast'] = "LS";
$seats[$rowCount]['dpCurrent'] = "WA";
$seats[$rowCount]['dpTarget'] = "TG";
$seats[$rowCount]['ma'] = 2 * 1;
} while ($rowCount < $resultSet->num_rows);
echo json_encode($seats);
并且JSON输出是这样的:
{ “1”:{ “房间”: “35”, “座位”:1, “×”:0, “Y”:0, “姓名”:“乔 布罗格斯”, “adno”: “01234”, “EV6”:真实的, “EAL”:真实的, “dpLast”: “LS”, “dpCurrent”: “WA”, “dpTarget”: “TG”, “马” :2}, “2”:{ “房间”: “35”, “座位”:2中, “x”:30, “Y”:60, “姓名”:“乔 布罗格斯”, “adno”: “01234”, “EV6”:真实的, “EAL”:真实的, “dpLast”: “LS”, “dpCurrent”: “WA”, “dpTarget”: “TG”, “马” :2}, “3”:{ “房间”: “35”, “座位”:3, “×”:60, “Y”:0, “姓名”:“乔 布罗格斯”, “adno”: “01234”, “EV6”:真实的, “EAL”:真实的, “dpLast”: “LS”, “dpCurrent”: “WA”, “dpTarget”: “TG”, “马” :2}, “4”:{ “房间”: “35”, “座位”:4中, “x”:90, “Y”:90, “姓名”:“乔 布罗格斯”, “adno”: “01234”, “EV6”:真实的, “EAL”:真实的, “dpLast”: “LS”, “dpCurrent”: “WA”, “dpTarget”: “TG”, “马” :2}}
我不认为它是服务器计时问题,因为它'myConsole'转储在错误之前并且工作正常。即使使用2d数组,它看起来也不像JSON有问题。奇怪的是,如果我将JSON输出保存为'testDataSample.php'并将我的主页直接链接到它,那么相同的输出可以完美地工作。
//oReq.open("get", "testDataSample.php", false); //Text JSON output works fine
oReq.open("get", "getData.php", false); // Live from Server ... '<' error
oReq.send();
任何有关错误的建议,或者我如何追踪这一点都会受到欢迎。 谢谢。
答案 0 :(得分:0)
谢谢你raghav710: - )
控制台日志显示了...我在dataSource.php文件的顶部有一些注释,它们被包含在echo中。
将此内容写入我的网页......它们被忽略并且不可见......这意味着我看不到它们,也看不出两个输出之间的区别;解析注释JSON引起了阻塞。
我删除了datasource.php顶部的所有注释,它立即生效。
再次感谢你。