我正在做一些Hello World工作,以更好地了解JSON。我已经在本地计算机上设置了一个简单的node.js服务器,并且可以对其进行调用。
我想打电话给Ajax,获取响应,现在只是console.log,但响应会返回到我的浏览器窗口中,而不是调用它的页面。
读取同一目录中的json文件的应用代码:
const http = require('http');
const port = 3300;
const studentsData = require('./student_data.json');
http.createServer((req,res) => {
res.writeHead(200, {
"Content-Type":"application/json",
"Access-Control-Allow-Origin":"*"
});
res.write(JSON.stringify(studentsData));
res.end();
}).listen(port);
console.log(`Node server is running on port : ${port}`);
这有效,服务器运行。
我要在页面中包含的JS(basic.js)文件:
const request = new XMLHttpRequest();
request.open('GET', 'http://localhost:3300');
request.onreadystatechange = function(){
if((request.status==200) && (request.readyState==4)){
console.log(request.responseText);
}
}
request.send();
我页面的HTML代码:
<!DOCTYPE html>
<html>
<head>
<title>Simple AJAX script</title>
<script type="text/javascript" src="basic.js"></script>
</head>
<body>
<h2>Include external Javascript to make an ajax call</h2>
</body>
</html>
当我浏览到该页面时,会在浏览器窗口中呈现呈现的JSON数据,而不是HTML文件。简短地说,在此之前,控制台中闪烁了一条消息,内容为“资源被解释为文档,但已作为MIME类型application / json传输:localhost:3300 / basic.html”
到目前为止我已经尝试过的事情: