6

クライアント側でGETリクエストをajaxします:

$.ajax({
        url: '/update',             
        type: 'get',    
        data: {
            "key": key,
            "value": value
        },
        success: function (data, err) {

        }
    })

次に、ノード側で、パラメーターを取得します

var showParam = function (req, res) {
    if (req.body) {
        for (var key in req.body) {
            console.log(key + ": " + req.body[key]);
        }       
        res.send({status:'ok',message:'data received'});
    } else {
        console.log("nothing received");
        res.send({status:'nok',message:'no Tweet received'});
    }   
}
app.get('/update', function(req, res){
    showParam(req, res);
})

シェルは、本体が空で未定義であることを示しています。

しかし、getpost(クライアント側とサーバー側の両方で)に変更すると、すべて問題なく、パラメーターを正しく取得できます。

私のコードの何が問題になっていますか?私は何かが恋しいですか?

4

3 に答える 3

11

GETリクエストを発行している場合、URLパラメータは本文の一部ではないため、bodyParserミドルウェアによって解析されません。

クエリパラメータにアクセスするには、参照するだけですreq.query

于 2012-12-23T16:26:29.953 に答える
2

req.query.keyと を使用して、サーバー側で get リクエストのデータにアクセスできますreq.query.value

于 2013-11-11T07:29:52.567 に答える
1

からパラメータを取得するには、 notbodyParserを使用する必要があります。ajaxリクエストとサーバー呼び出しは両方ともを使用する必要があります。POSTGETPOST

http://expressjs.com/api.html#req.body

app.post('/update', function(req, res){
    showParam(req, res);
});

$.ajax({
        url: '/update',             
        type: 'POST',    
        data: {
            "key": key,
            "value": value
        },
        success: function (data, err) {

        }
    });

パラメータを取得するGETには、urlモジュールを使用してを使用しますquery = url.parse(req.url, true).queryquery経由でアクセス可能な値を持つオブジェクトが含まれますquery.foo

于 2012-12-23T14:38:15.553 に答える