先看一下这个函数,注意json文件位于本地:
if (request) {
request.open("GET", "flicks.json", true);
request.onreadystatechange = function() {
if (request.readyState == 4) {
var testi = request.responseText;
var listmovies = JSON.parse(testi);
console.log(typeof testi); // THIS RETURNS STRING
console.log(typeof listmovies); // THIS RETURNS OBJECT - YAY!
}
};
request.send(null);
}
太完美了,我得到了我想要的,一个包含 JSON 数据的对象。
但是当我更改 JSON 文件的位置并将其放在服务器上时:
request.open("GET", "http://www.myserver.com/flicks.json", true);
然后它返回此错误:
SyntaxError: JSON.parse: unexpected end of data
示例 JSON
{
"feed": "....",
"description": "Fake List of Netflix movies",
"modified": "2010-10-25T15:04:46Z",
"generator": "I did it",
"items": [
{
"title": "...",
"link": "h...",
"media": {
"m": "..."
},
"date_taken": "..."
},
{
"title": "...",
"link": "...",
"media": {
"m": "..."
},
"date_taken": "..."
}
]
}
为什么它在本地工作而不是其他方式?