Node.js的JavaScript和HTML脚本无法正常工作

好吧,所以我想让我的html / javascript与我的nodes.js服务器通信。 我正在试图做的是发布数据到我的nodes.js服务器,然后将结果回显到我的HTML / JavaScript。

通信正在节点中工作,我有postdata console.log,我可以通过运行节点控制台来看到它。

问题是我需要javascript来等待node.js函数完成,然后将由节点生成的文本回显到html页面。

我只是不能得到这个工作inheritance人我的HTML / JavaScript的

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <html><head><title>Welcome To ....</title> <script type="text/javascript"> function textareaToArray(t){ return t.value.split(/[\n\r]+/); } function showArray(msg){ for(i = 0; i < msg.length; i++) { // something per item var data = {}; //your own data $.post("http://192.168.2.109:8111" + "?" + $.param({name: msg[i]}), data); } // the old code document.getElementById("message").innerHTML = msg.join("
"); } </script> </head> <body> <h1> WELCOME TO .... </h1> <form> <textarea rows="10" cols="60" name="alpha"></textarea> <br> <input type="button" value="show array" onclick="showArray(textareaToArray(this.form.alpha ))"> </form> <br> <textarea id="message" rows="6" cols="60" name="message"></textarea> </body></html> 

这里是我的节点脚本

  var url = require('url') var http = require('http') var server = http.createServer(function (request, response) { var queryData = url.parse(request.url, true).query; response.writeHead(200, {"Content-Type": "text/plain"}); if (queryData.name) { // user told us their name in the GET request, ex: http://host:8000/?name=Tom var basevalue = queryData.name; var value = basevalue.split (":"); console.log(value[0]); console.log(value[1]); var exec = require('child_process').exec; exec ("casperjs test.js " + value[0] + " " + value[1] + '\n',function(err, stdout, stderr) { response.end(stdout); }); } else { response.end("Contact Admin - Not Working\n"); } }); // Listen on port 8000, IP defaults to 127.0.0.1 server.listen(8111); 

有人可以请给我看看,并帮助我解决这个谢谢

很简单。 您需要在回叫中调用警报。 所以在完成发布请求时会被执行。 改变你的几行如下

 $.post("http://192.168.2.109:8111" + "?" + $.param({name: msg[i]}), function(data){ // data contains your response from server. now you can handle it as you want });