mootools を使用して、ノード 0.10.3 で AJAX 接続を確立しようとしています。私のコードは次のとおりです。
クライアント
var ajax = new Request({
url: '/register',
method: 'post',
onSuccess: function(responseText){
console.log(responseText);
}
})
var json = {data:'data'};
ajax.send(JSON.stringify(json));
//ajax.send(json);
サーバ
var express = require('express');
var app = express();
app.use(express.static(__dirname + '/public'));
app.listen(1344);
app.post('/register', function(req,res){
//Auth.register()
console.log(req.body);
res.contentType('json');
res.send({ some: JSON.stringify({response:'json'}) })
})
接続は正常に機能しています。クライアントで私は応答を受け取ります。したがって、console.log(responseText)
OnSucces メソッドの内部は正しい値を出力しています。
しかし、サーバー側ではconsole.log(req.body)
、undefined
.
ここでいくつか疑問があります。mootools は javascript オブジェクトを json 文字列に変換しますか? オブジェクトを変換する必要はありますか? AJAXを介してノードに情報を送信する正しい方法は何ですか? これでajax.send(JSON.stringify(json));
よろしいですか?それともこんな感じajax.send(json)
ですか;?
ヘッダーを json に指定する必要がありますか?
特定の問題を解決することとは別に、node.js に関するこの概念を確実に明確にするための記事やフィードバックがあればよいでしょう。
編集
同様の問題に直面している人のために、正しいコードを投稿します。パーサーについては Noah が正しかったのですが、もう 1 つの詳細があります。パーサーは重要なデータを期待しています。幸いなことに、データを例として使用していました。
クライアント
var ajax = new Request({
url: '/register',
method: 'post',
onSuccess: function(responseText){
console.log(responseText); //Logs "some": "{\"response\":\"json\"}"
}
})
ajax.send({data:{ok:'OK'}});
サーバ
var express = require('express');
var app = express();
app.use(express.static(__dirname + '/public'));
app.use(express.bodyParser());
app.listen(1344);
app.post('/register', function(req,res){
console.log(req.body); //logs {ok:'OK'}
res.contentType('json');
res.send({ some: JSON.stringify({response:'json'}) })
})