2016-05-20 6 views
0

Ich baue eine app node.js und haben einen GET-Endpunkt in Form verwendet:Nicht alle Anforderungsparameter zeigt Ajax node.js

/api/car/:id

Ich habe eine GET-Anfrage wie:

var data = { 
    color: 'red', 
    mileage: '1000' 
}; 

$.ajax({ 
    type: "GET", 
    url: "/api/car/12345", 
    data: {color: 'red', mileage: '1000'}, 
    success: function(data) { 
     console.log(data) 
    }, 
    error: function() { 
     console.log('some error occurred'); 
    } 
}); 

Wenn ich die Parameter auf der Serverseite console.log erhalte ich nur die ‚12345‘ aber ich weiß nicht die Parameter in data definiert erhalten:

console.log(req.params)

{ id: '12345' }

Während es sollte wie etwas sein:

{ id: '12345', color: 'red', mileage: '1000' }

Kann jemand helfen? Ich muss alle 3 Parameter auf der Serverseite verwenden ...

Vielen Dank im Voraus!

Antwort

2

Es scheint, dass Sie Express verwenden.

Abfrage-String-Daten (das ist, wo jQuery die Werte gesetzt werden Sie data geben, wenn Sie eine GET-Anfrage zu machen) in req.query gefunden wird, nicht req.params (die nur die Parameter in der Route-Spezifikation definiert enthält).

+0

perfekt verwenden !! * facepalm * –

0

Sie können die Farbe mit req.body.color aufrufen. Aber zuerst brauchen Sie ein "body-parser" -Paket.

+1

Nein, das geht nicht. Es ist eine GET-Anfrage, die Daten sind nicht im Körper. – Quentin

+0

Oh yach ich habe das Verb nicht gesehen. –

1

req.params gibt Parameter zurück, die in Ihrer definierten Route übereinstimmen. Um auf die Parameter zuzugreifen, die im Abfragezeichenfolgeteil der URL gesendet wurden, müssen Sie req.query

+0

* facepalm * !!!!!!! –