我正在尝试从使用JavaScript中的XMLHttpRequest对象创建的Node应用程序中获取响应。我用于执行此操作的代码如下:
var get = function()
{
var http = new XMLHttpRequest({mozSystem: true});
http.onreadystatechange = function() {
if (http.status === 200) {
console.log(http.responseText);
}
}
http.open("GET", "http://127.0.0.1:3000", true);
http.setRequestHeader("Content-Type", "text/plain");
http.send();
}
Node应用程序是:
const http = require('http');
const fs = require('fs');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) =>
{
let body = [];
req.on('data', (chunk) =>
{
body.push(chunk);
}).on('end', () =>
{
body = Buffer.concat(body).toString();
if(req.method === "GET")
{
console.log("GET");
}
res.setHeader('Content-Type', 'text/plain');
res.end("Hello World");
})
});
但是,什么也没有打印。我在Chrome和Mozilla中打开了开发人员工具,可以看到状态为200,并且响应列在Ajax调用的响应下方-清楚地写着“ Hello World”。
作为学校的Node演示,我正在本地进行所有操作。我的应用程序能够很好地处理发布请求-但是从GET请求中获取响应似乎不起作用。我愿意接受任何建议!
谢谢你。
答案 0 :(得分:0)
要回答我的问题,我不知道没有启用COR会导致这种现象-浏览器将显示请求正在处理中,可以在开发人员工具中看到响应,但无法将其打印到控制台。谢谢Jaromanda帮助我实现这一目标。