获取终端命令(Nodejs)并通过AJAX发送到特定端口

时间:2014-06-19 11:59:13

标签: ajax node.js

我实际上正在处理一个小应用程序。我有一个用C语言编写的服务器正在侦听端口5260.另一方面,我有一个NodeJS客户端正在侦听端口7777.可以通过此端口访问HTML页面。在HTML页面中,我有一个简单的按钮。 当我点击这个消息时,会向我的NodeJS服务器发送一条消息并写在终端上。现在我想获取此命令并将其发送到仍在运行并等待请求的C服务器。

我的client.js:

var http = require('http');
var ejs = require('ejs');
var express=require('express');

var app = express();

app.engine('html', ejs.renderFile);

app.set('/', __dirname);

app.get('/', function(request,response) {

  response.render('index.ejs.html');
})

var options = {
  host: '192.168.1.154',
  path: '/',
  port: '5260',
  method: 'POST'
};

app.post('/play', function(req, res){
  var res = http.request(options);
  console.log("START_BG;BG1\n");
});

app.listen(7777);

我的HTML文件:

<html>
    <head>
        <script type="text/javascript" src="client.js"></script>

        <script type="text/javascript">

        function sendMessage() {    
            var xhr = new XMLHttpRequest();
            xhr.open('POST', '/play', true);
            xhr.onload = function() {
             console.log(xhr);
            };
            xhr.send();
        }

      </script>
    </head>
<body>

<button onclick="sendMessage()">VIDEO</button>

</body>

</html>

1 个答案:

答案 0 :(得分:0)

好。我在你的代码中看到了一些奇怪的东西

1您发送 192.168.1.254:5620/play 的帖子请求而不发送任何数据

2您没有等待请​​求结束并盲目地在控制台上打印而不检查结果。不知道它是否有所需的行为,但似乎有点奇怪

如果没有更多关于该场景的知识,很难提出一个想法。

  • 您对远程服务器的期望是什么?
  • 是否可以在(远程)控制台中打印一些内容?
  • 它应该通过HTTP返回什么?

无论如何,我建议你更正你的代码如下:

app.post('/play', function(req, res){
  var res = http.request(options, function(response){
    // do any checking about response status and/or body if any
    console.log("START_BG;BG1\n");
  });
});