json ファイルから json データを取得する際にいくつかの問題があります。まず、ここにエラーがあります。
"NetworkError: 404 Not Found - http://localhost:8000/channels.json"
私のhtmlファイルでjsonデータを取得するためのコードは次のとおりです。
<div id="result"></div>
<script type="text/javascript">
// read episodes in channel
function ajaxRequest(){
if (window.XMLHttpRequest) // if Mozilla, Safari etc
return new XMLHttpRequest();
else
return false;
}
var mygetrequest=new ajaxRequest();
mygetrequest.onreadystatechange=function(){
if (mygetrequest.readyState==4){
if (mygetrequest.status==200 || window.location.href.indexOf("http")==-1){
var jsondata=eval("("+mygetrequest.responseText+")"); //retrieve result as an JavaScript object
var rssentries=jsondata.channels;
var output='<ul>';
for (var i=0; i<rssentries.length; i++){
output+='<li>';
output+=rssentries[i].channel_id+'</a><br>';
output+='<a href="multiroom.html">'+rssentries[i].name+'</a>';
output+='</li>';
}
output+='</ul>';
document.getElementById("result").innerHTML=output;
}else{
alert("An error has occured making the request");
}
}
}
mygetrequest.open("GET", "channels.json", true);
mygetrequest.send(null);
</script>
そのため、HTMLは単独で動作しますが、ノードサーバーでレンダリングしようとすると、エラーが発生し、ノードサーバーのコードが急行で表示されます:
var express = require('express');
var http = require('http');
var app = express();
var server = module.exports = http.createServer(app);
server.listen(8000);
console.log("Express server listening on port 8000 in %s mode");
app.set('views', __dirname + '/views');
app.engine('html', require('ejs').renderFile);
app.get('/episodes', function(req, res){
res.render('episodes.html');
});
エラーを回避するために、サーバーでjsonデータ呼び出しを行う必要があります。他に方法はありませんか?