2014-11-04 12 views
5

Próbuję przekazać dane POST do trasy żelaznego routera z zewnętrznego meteoru, ale to nie działa. Treść żądania jest pusta.Meteor Iron Router Jak uzyskać dane POST

Próbowałem wyprowadzić treść żądania, aby sprawdzić, czy dane są obecne, ale są puste.

Router.route('/api/gatewaysusers', function() { 
     body = this.request.body; 
     console.log(this.request) 
     // this.response.write(body); 
     this.response.end("Call served"); 


}, {where: 'server'}) 

Każdy pomysł? Dziękuję Ci.

+0

możliwy duplikat [Jak uzyskać dostęp do parametrów zlecenia w Meteor?] (Http://stackoverflow.com/questions/11799079/how-do-i-access-request-parameters-in-meteor) –

+1

@ChristianFritz it's nie duplikat. Kod tutaj jest całkowicie w porządku, a problem jest po stronie "żelaznego routera". –

Odpowiedz

8

Numer request.body jest pusty, ponieważ iron-router brakuje oprogramowania pośredniego odpowiedzialnego za wyodrębnianie danych zakodowanych w adresach URL. Jest to BUG, który zostanie miejmy nadzieję rozwiązany w późniejszych wersjach. Na razie możesz po prostu dodać:

Router.onBeforeAction(Iron.Router.bodyParser.urlencoded({ 
    extended: false 
})); 

gdzieś na serwerze i powinno działać poprawnie. Aby uzyskać więcej informacji, patrz here.

+0

To działa, dziękuję. Teraz mogę uzyskać ciało za pomocą this.request.body. – DanteDiaze

+2

Wygląda na to, że zostało naprawione, "this.request.body' ma teraz wszystkie oczekiwane dane bez tego dodatkowego połączenia. – romaroma

+0

@romaroma Czy wiesz dokładnie, w jakiej wersji IR został rozwiązany? –

Powiązane problemy