聚合物铁-ajax 本体收到快递异物
polymer iron-ajax body received in express extra object
我正在尝试将 JSON 对象从我的聚合物应用程序发送到我的快递 API。
我在客户端做了以下操作:
<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);
},
在快递方面,我打印以下内容:
function(req, res, next) {
console.log(req.body);
}
这给了我以下输出:
{
'{"name":"jljk"}': '' }
我希望在我的 express 应用程序中,我会收到一个带有正文的请求:{name: '...'} 而不是围绕它的额外对象。有人可以向我解释为什么会这样吗?
您可以尝试使用 params
而不是 body
,如下所示:
this.$.createRoomAjax.params = {
'name': roomname.value
}
这对我使用 Polymer 和 Express 很有效。
我刚刚找到了问题的解决方案。看来我需要将 iron-ajax 请求的 contentType 设置为 json 否则它会以不同方式发送 body-payload。
新 HTML:
<iron-ajax
id="createRoomAjax"
url="{{url}}{{roomRoute}}"
method="POST"
content-type="application/json"
on-response="onRoomCreated"
debounce-duration="300">
</iron-ajax>
我正在尝试将 JSON 对象从我的聚合物应用程序发送到我的快递 API。
我在客户端做了以下操作:
<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);
},
在快递方面,我打印以下内容:
function(req, res, next) {
console.log(req.body);
}
这给了我以下输出:
{ '{"name":"jljk"}': '' }
我希望在我的 express 应用程序中,我会收到一个带有正文的请求:{name: '...'} 而不是围绕它的额外对象。有人可以向我解释为什么会这样吗?
您可以尝试使用 params
而不是 body
,如下所示:
this.$.createRoomAjax.params = {
'name': roomname.value
}
这对我使用 Polymer 和 Express 很有效。
我刚刚找到了问题的解决方案。看来我需要将 iron-ajax 请求的 contentType 设置为 json 否则它会以不同方式发送 body-payload。
新 HTML:
<iron-ajax
id="createRoomAjax"
url="{{url}}{{roomRoute}}"
method="POST"
content-type="application/json"
on-response="onRoomCreated"
debounce-duration="300">
</iron-ajax>