资源被解释为文档,但被传输为MIME类型application / json:

时间:2018-10-20 22:59:22

标签: javascript json ajax

我正在做一些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”

到目前为止我已经尝试过的事情:

  • 使用了Firefox和Chrome
  • 在URI中添加查询字符串(/?)并调用它

0 个答案:

没有答案