Javascript 获取Node.js以获取用户';是从HTML文本字段输入的吗?
我一直在尝试制作一个简单的游戏,用户可以将自己的高分提交到Node.js服务器。我只是想做一些非常简单的事情,但似乎在网上找不到多少帮助 目前,我已经有了使用AJAX连接和响应服务器的主页 以下是HTML:Javascript 获取Node.js以获取用户';是从HTML文本字段输入的吗?,javascript,ajax,node.js,Javascript,Ajax,Node.js,我一直在尝试制作一个简单的游戏,用户可以将自己的高分提交到Node.js服务器。我只是想做一些非常简单的事情,但似乎在网上找不到多少帮助 目前,我已经有了使用AJAX连接和响应服务器的主页 以下是HTML: <div id="test"></div> <h3>Upload your high-score:</h3> Your score: <input type="text" name="yourScore"> <button
<div id="test"></div>
<h3>Upload your high-score:</h3>
Your score: <input type="text" name="yourScore">
<button id="SubmitBtn" type="submit">Submit</button>
是的,如果有人知道如何让我的Node.js服务器读取“yourScore”文本字段中的数据,并在单击“SubmitBtn”按钮将数据发送到服务器时,我将非常感谢 您需要向服务器发送帖子,请签出 在脚本中:
$.ajax({
type: "POST",
data: {
yourScore: $('input[name="yourScore"]').val()
},
//other parameters
在你的服务器上
http.createServer(
//...
if (req.method == 'POST'){
console.log(req.body.yourScore)
弗斯特
您没有随AJAX请求发送任何数据
可能的解决方案(最好是使用ID
或序列化表单
元素来获取分数输入
元素):
第二
在NodeJS请求处理程序中,您可以使用请求对象获取发送的数据
可能的解决办法:
var http = require('http');
http.createServer(function (req, res) {
var score = req.body.score;
console.log(score);
//do whatever you want
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('_testcb(\'{"message": "Welcome! Node.js Responding!"}\')');
}).listen(80);
您好,谢谢您的回答,但是当使用您建议的添加代码运行Node.js服务器时,我遇到了一个问题,错误如下:ReferenceError:request未在Object中定义。(C:\Users\Mike\SnakeServer.js:2:13)在Module.处编译(Module.js:456:26)在Object.Module.处扩展..js(Module.js:474:10)在Function.Module.处加载(Module.js:356:32)在Function.Module.runMain(Module.js:497:10)处加载(Module.js:119:16)在node.js:901:3,你知道如何解决这个问题吗?Thanks@Mike它有一个错误。将请求更改为请求。再次查看我的答案。您好,感谢您的回复,但当我将其更改为“var score=req.body.score”时,它会显示“无法读取未定义的属性‘score’”,即使输入文本字段的“name”和“ID”属性都称为“score”。。有什么想法吗?感谢您在此范围内
http.createServer(函数(req,res){})必须定义代码>请求正文。检查您的代码,看看您是否缺少一些东西您正在使用connect的bodyParser中间件吗?您需要它具有可用的request.body
对象。如果没有,您需要自己使用('data',function(chunk){})来解析数据代码>
http.createServer(
//...
if (req.method == 'POST'){
console.log(req.body.yourScore)
$.ajax({
url: 'http://localhost',
data: { score : $("input[name='score']").val() },
dataType: "jsonp",
jsonpCallback: "_testcb",
cache: false,
timeout: 5000,
success: function(data) {
$("#test").append(data);
},
error: function(jqXHR, textStatus, errorThrown) {
alert('Error connecting to the Node.js server... ' + textStatus + " " + errorThrown);
}
});
var http = require('http');
http.createServer(function (req, res) {
var score = req.body.score;
console.log(score);
//do whatever you want
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('_testcb(\'{"message": "Welcome! Node.js Responding!"}\')');
}).listen(80);