简体   繁体   English

Javascript xmlhttp获取对nodejs服务器的请求什么都不返回

[英]Javascript xmlhttp get request to nodejs server returns nothing

Before I begin I'd like to tell all of you that I made a lot of searching for solution of this problem on my own. 在我开始之前,我想告诉你们所有人,我自己在寻找解决这个问题的方法。

Here is my nodejs server: 这是我的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/');

It listens on port 1337 and if request url is correct it returns some string. 它侦听端口1337,如果请求url是正确的,则返回一些字符串。

Here is my javascript code asking nodejs for answer. 这是我的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)

returned xmlHttp.responseText is blank. 返回的xmlHttp.responseText为空。 Why? 为什么? That's my question. 那是我的问题。

That's what my nodejs server has to say in this matter 这就是我的nodejs服务器在这件事上必须说的

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

If I curl my server it returns mi proper value. 如果我卷曲我的服务器它返回mi适当的值。

xmlHttp.responseText hasn't been populated when you return it. 返回时尚未填充xmlHttp.responseText Ajax is Asynchronous . Ajax是异步的

See Using XMLHttpRequest and bind an event handler to listen for when the HTTP response has arrived and process the data in that. 请参阅使用XMLHttpRequest并绑定事件处理程序以侦听HTTP响应何时到达并处理其中的数据。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM