Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取节点/Express中登录页面以外的信息无效_Javascript_Node.js_Http_Express - Fatal编程技术网

Javascript 获取节点/Express中登录页面以外的信息无效

Javascript 获取节点/Express中登录页面以外的信息无效,javascript,node.js,http,express,Javascript,Node.js,Http,Express,这里有点奇怪。我正在构建一个后端和前端,它与控制某些硬件的第三方RESTFUL API进行通信。第三方api作为Web服务器安装在您的本地系统上,因此要发出HTTP请求,您可以将它们定向到localhost 主要问题是,在一些更改之后,必须通过登录Web服务器并单击“更新硬件”按钮来更新硬件,这会将所有最新的更改推送到实际的硬件上。不幸的是,API没有任何用于执行此操作的默认调用/命令 在浏览完这些文件后,我发现我可以通过简单的GET请求刷新一扇门tohttp://localhost/Intel

这里有点奇怪。我正在构建一个后端和前端,它与控制某些硬件的第三方RESTFUL API进行通信。第三方api作为Web服务器安装在您的本地系统上,因此要发出HTTP请求,您可以将它们定向到localhost

主要问题是,在一些更改之后,必须通过登录Web服务器并单击“更新硬件”按钮来更新硬件,这会将所有最新的更改推送到实际的硬件上。不幸的是,API没有任何用于执行此操作的默认调用/命令

在浏览完这些文件后,我发现我可以通过简单的GET请求刷新一扇门tohttp://localhost/IntelliM/DoorsConfig/DownloadChangeForAllDoors.ashx 如果我把它输入浏览器,它会完美地更新硬件

问题是访问此页面需要登录,我一直试图通过此代码实现登录

/* update door */
router.get('/updatedoor', function (req, res) {
    request.post({
        headers: {'content-type' : 'application/x-www-form-urlencoded'},
        url:     "http://localhost/IntelliM/login/index.ashx?",
        body:    "password=admin&username=admin"
    }, function(error, response, body){
        //Here is where I would make a GET request to doorupdate mentioned earlier
        console.log(body);
    });
});
当我记录正文或将其显示在页面上时,我会得到一个很大的正文响应,除了这两行之外,大多数正文都不重要:

Username: <input type="text" id="username" name="username" value="" />
Password: <input type="password" id="password" name="password" value="admin" /> 
看起来这个页面甚至没有得到我的用户名值,只是返回了我只需要输入密码就可以得到的页面主体

我试图让它记录我登录后通常看到的页面,因为这样我就知道登录成功了,然后我就可以对我需要的页面发出get请求

编辑:对于上下文,硬件是门控制器,必须推动的更改是添加可以访问门的用户

编辑全文:

    <form id="loginForm" action="/IntelliM/login/login.ashx" method="post">
    <fieldset id="loginFieldSet">
            <legend id="loginFieldSetLegend">Authentication</legend>
            <div id="loginFieldSetFields">
                    <p id="loginFieldSetUsername">Username: <input type="text" id="username" name="username" value="" /></p>
                    <p id="loginFieldSetPassword">Password: <input type="password" id="password" name="password" value="admin" /></p> <input type="hidden" id="ReturnUrl" name="ReturnUrl" value="/IntelliM/default.aspx" />
                    <p id="loginFieldSetButton"><input type="submit" value="Login" id="submit" /></p>
            </div>
    </fieldset>
    <div id="loginFormRegister">Your system is licensed for Intelli-M Access</div>
将url更改为/IntelliM/login/login.ashx,并将更改正文添加到

form: {password="admin", username="admin", ReturnURL:"/IntelliM/default.aspx"}

尝试以这种方式添加,而不是以正文形式添加:{password=admin,username=admin}如果有效,请告诉我无效。我把它改成了{password:admin,username:admin},我只得到了一个TypeError:第一个参数必须是字符串或缓冲区。如果我改成了{password=admin,username=admin},它就不起作用了。你把body改成form了吗?对不起,误解了,把body改成form,值是{password:admin,username:admin}我仍然只收到密码值。用户名还是空的