[英]What is wrong with this HTML, JavaScript and JSON code?
我在名为test.html
的文件中包含以下HTML代码。 下面的HTML文件和JSON文件都存储在同一目录中的服务器上。
<!DOCTYPE html>
<html>
<head>
<title>Shape Up</title>
<meta name="robots" content="noindex,follow">
<meta name="description" content="">
<meta name="keywords" content="">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="JavaScript" type="text/javascript">
function ajax_get_json()
{
var hr = new XMLHttpRequest();
hr.open("GET", "game.json", true);
hr.setRequestHeader("Content-type", "application/json", true);
hr.onreadystatechange = function()
{
if(hr.readyState == 4 && hr.status == 200)
{
var data = JSON.parse(hr.responseText);
var results = document.getElementById("results");
results.innerHTML = "";
for(var obj in data)
{
results.innerHTML += data[obj].title;
}
}
}
hr.send(null);
results.innerHTML = "requesting...";
}
</script>
</head>
<body>
<div id="results"></div>
<script language="JavaScript" type="text/javascript">
ajax_get_json();
</script>
</body>
</html>
它从名为game.json
的文件中提取数据,该文件存储在同一目录中。
{
"level_001":
{
"id":001,
"title":"Level 1",
"difficulty":0,
"comments":"this is how you complete level 1"
},
"level_002":
{
"id":002,
"title":"Level 2",
"difficulty":0,
"comments":"this is how you complete level 2"
}
}
问题是results.innerHTML = "";
线永远不会到达。 为什么?
浏览器中没有错误,我已经在Firefox和Safari上进行了检查。
根据jsonlint.com,由于以下属性,您的JSON无效:
"id":001
...
"id":002
您需要删除前导零:
"id":1
或将数字设为字符串:
"id":"001"
有关更多详细信息,请参阅json.org中阐明的格式规则
大概永远不会到达您提到的行,因为JSON.parse()
给出了上述错误。 (在浏览器的控制台中看不到错误吗?)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.