【发布时间】:2013-01-18 13:45:36
【问题描述】:
好的,所以当我运行这个服务器时:
var net = require('net');
var server = net.createServer(function (data) {
console.log("Hello " + data.name);
});
server.listen(1337, '127.0.0.1');
然后在 chrome 上浏览此页面(来自文件,而不是域):
<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
var data = new function(){
this.name = "John";
};
$.post('http://127.0.0.1:1337/', data);
</script>
</head>
<body>
</body>
</html>
我在我的服务器上得到以下输出:
Hello undefinied
我的问题是,为什么我的数据对象的名称在我将它发送到服务器时变得未定义?
编辑:所以我将服务器更改为:
var http = require('http');
var server = http.createServer(function (data) {
console.log("Hello " + data.name);
});
server.listen(1337, '127.0.0.1');
并将我客户的脚本更改为:
var data = {
name: "John"
};
$.post('http://127.0.0.1:1337/', data);
但我仍然遇到同样的错误。
【问题讨论】:
-
您是否还在遵循给定的示例?昆汀举例:Scroll to bottom and you will see a sample HTTP server
-
是什么让你觉得服务器连接回调会自动给你在客户端创建和发送的对象?
-
@Mustafa 我想要的是将对象发送到服务器,并让服务器打印出对象的值(在本例中为名称)。我不想让文字向世界打招呼。
-
您了解 HTTP 协议吗?如果你这样做,只需阅读HTTP docs of NodeJS
-
如果您正在寻找魔法,您将找不到它。您需要学习 API 并编写相应的代码。
标签: javascript jquery node.js