最初にこの関数を見てください。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": "..."
}
]
}
ローカルでは機能するのに、他の方法では機能しないのはなぜですか?