2016-04-09 17 views
0

Polimer uygulamamdan bir ekspres API'ye bir JSON nesnesi göndermeye çalışıyorum.polimer demir-ajax gövdesi ekspres ekstra nesne olarak alındı ​​

ben istemci üzerinde aşağıdakileri yapın:

<iron-ajax 
    id="createRoomAjax" 
    url="{{url}}{{roomRoute}}" 
    handle-as="json" 
    method="POST" 
    on-response="onRoomCreated" 
    debounce-duration="300"> 
</iron-ajax> 

createRoom: function() { 
    this.$.createRoomAjax.body = { 
    'name': roomname.value 
    }; 
    this.$.createRoomAjax.generateRequest(); 
    // console.log(this.$.createRoomAjax); 
}, 

aşağıdaki yazdırmak ekspres tarafta:

{ : Bana şu çıktıyı verir

function(req, res, next) { 
    console.log(req.body); 
} 

'{"name": "jljk"}': ''}

Ekspres uygulamasında onu çevreleyen fazladan bir nesne yerine {name: '...'} bedeniyle bir req alacağımı beklerim. Birisi bana bunun neden olduğunu açıklayabilir mi?

cevap

1

Sorunumu çözdüm. Demir-ajax isteğimin contentType'ının json'a ayarlanması gerektiği görünüyor, aksi takdirde vücut-yükünü farklı yolluyor.

yeni HTML:

<iron-ajax 
     id="createRoomAjax" 
     url="{{url}}{{roomRoute}}" 
     method="POST" 
     content-type="application/json" 
     on-response="onRoomCreated" 
     debounce-duration="300"> 
    </iron-ajax> 
1

Öyle gibi params yerine body kullanarak deneyebilirsiniz: Bu bana Polimer ve Express kullanılarak için iyi çalışır

this.$.createRoomAjax.params = { 
    'name': roomname.value 
} 

.

+0

Cevabınız için teşekkür ederim ama ben vücutta göndermek istiyorum! – Bram