ここに私のjavascriptファイルがあります
var callAjax = function(relative_path){
var Ajax = new XMLHttpRequest();
Ajax.onreadystatechange = function() {
//Since what we are calling a local file. we cannot get a 200 OK Status.
//So We check only the readystate
if(Ajax.readyState==4){
serialized = Ajax.responseText;
alert(serialized);
// ^^ alerts fine.
return serialized;
}
}
Ajax.open("GET",relative_path, true);
Ajax.send();
};
var readSettings = function(){
var data = callAjax('settings.json');
obj = JSON.parse(data);
alert(obj);
}
HTMLのどこかで呼び出すとreadSettings()
、最初のアラート(callAjax関数でJSONを正しくアラートしますが、2番目のアラートはそうではありません。コンソールを見ると、エラーは次のとおりです。
[21:04:02.233] SyntaxError: JSON.parse: 予期しない文字 @ file:///home/cipher/Codes/looma-f5/js/looma.js:23
私のsettings.jsonは次のとおりです。
{
"classes": 8,
"config": "classConfig",
"locale": {
"en": "localeEn"
},
"defaultLocale": "en"
}
JSON をオンライン ツールで実行しましたが、良さそうです。firefox がこれらを解析しないのはなぜですか?