Javascript xmlhttp获取请求到nodejs服务器不返回任何内容

在开始之前,我想告诉你们所有的人,我自己都在寻找解决这个问题的方法。

这是我的nodejs服务器:

var http = require('http'); http.createServer(function (req, res) { console.log("Recived request url " + req.url); var sname = req.url.search("name"); if(sname != -1){ sname = sname + "name".length + 1; var from = sname; while(req.url[sname] != '?' && sname<req.url.length){ sname++; } var name = req.url.substring(from,sname); console.log("Returning parameter of name - " + name); res.writeHead(200, {'Content-Type': 'text/plain'}); res.end(name+'\n'); } else{ res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Error - ask about name\n'); } }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/'); 

它侦听端口1337,如果请求的URL是正确的,它返回一些string。

这是我的javascript代码问nodejs的答案。

 function httpGet(theUrl){ var xmlHttp = null; xmlHttp = new XMLHttpRequest(); xmlHttp.open( "GET", theUrl, true ); xmlHttp.send( null ); return xmlHttp.responseText; } var url = httpGet("http://127.0.0.1:1337/?name=Mateusz"); setTimeout(function(){ document.getElementById("actualnewsspace").innerHTML=url; var xurl = httpGet("http://127.0.0.1:1337/?"+url); },5000) 

返回的xmlHttp.responseText是空白的。 为什么? 这是我的问题。

这就是我的nodejs服务器在这个问题上所要说的

 Recived request url /?name=Mateusz Returning parameter of name - Mateusz Recived request url /? 

如果我curl我的服务器,它返回适当的价值。

xmlHttp.responseText在返回时尚未填充。 Ajax是asynchronous的

请参阅使用XMLHttpRequest并绑定事件处理程序来侦听HTTP响应何时到达并处理数据。