了解しました。このサーバーを実行すると、次のようになります。
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);
しかし、それでも同じエラーが発生します。