javascript - 无法将响应值从nodejs服务器传递到ajax函数

标签 javascript node.js ajax

我已从 process() 函数将数据发送到 router.get 方法。但是我无法将 router.get 方法的 xmlString 变量传递给 test.js 中的 handleServerResponse() 方法。它显示内部服务器错误。请解决我的问题。提前致谢。

我的test.js文件

var xmlHttp = createXmlHttpRequestObject();

function createXmlHttpRequestObject(){
    var xmlHttp;

    if(window.ActiveXObject){
        try{
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }catch(e){
            xmlHttp = false;
        }
    }else{
        try{
            xmlHttp = new XMLHttpRequest();
        }catch(e){
            xmlHttp = false;
        }
    }

    if(!xmlHttp){
        alert("Cant create that object");
    }else{
        return xmlHttp;
    }
}

function process(){
    if (xmlHttp.readyState == 0 || xmlHttp.readyState == 4) {
        var food = document.getElementById("userInput").value;
        console.log(food);

        xmlHttp.open("GET", "/start/" + food, true);
        xmlHttp.onreadystatechange = handleServerResponse;
        xmlHttp.send(null);
    } else {
        setTimeout('process()', 1000);
    }
}



function handleServerResponse(){
    let xmlResponse;
    let xmlDocumentElement;
    let message;
    if (xmlHttp.readyState == 4) {
        if (xmlHttp.status == 200) {

            console.log("check done");
             xmlResponse = xmlHttp.responseXML;
             xmlDocumentElement = xmlResponse.documentElement;
             message = xmlDocumentElement.firstChild;
             console.log(message);
            document.getElementById("underInput").innerHTML = '<span style="color:blue"></span>';
            setTimeout('process()', 1000000);
        } else {
            alert('Something went wrong!');
        }
    }
}

我的index.js文件

router.get('/start/:id', function(req, res, next) {
    console.log(req.params.id);

    var xmlString = "<div id='foo'><a href='#'>Hello BigGo</a><span></span></div>"
        , parser = new DOMParser()
        , doc = parser.parseFromString(xmlString, "text/xml");
    var data='dip';
 });

我的add.hbs文件

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="test.js"></script>
</head>
<body >


<h3>The Chuff Bucket</h3>
Enter the foood you would like to order:
<input type="text" id="userInput" oninput="process()" />
<div id="underInput"></div>
</body>
</html>

最佳答案

需要在router.get()函数末尾添加res.send(data)

关于javascript - 无法将响应值从nodejs服务器传递到ajax函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50392402/

相关文章:

node.js - 根据 URL 更改 Express 常量(即本地主机与生产环境)

node.js - npm 运行开发失败 : ValidationError: Invalid options object

javascript - 如何使用js函数回调

javascript - 如何让浏览器不解析从 javascript 添加的新 HTML 代码

javascript - 如何在 cookie 中添加多个对象

javascript - 如何根据套接字事件呈现新的 jade View ?

javascript - 点击显示一里,隐藏休息 |单击第二个列表中的其他选项后,为第一个列表保存选项

对我的 CSS 页面有值(value)的 PHP 输入

javascript - Console.log() 它不显示函数的结果

javascript - 如何将输入的值添加到 li 列表?