这就是我所拥有的:
Polymer('my-element', {
created: function() {
this.data = {
name: 'John Doe',
email: 'john@doe.com'
};
},
handleResponse: function(e, d) {
console.log(d.response);
}
});
<core-ajax
id="ajax"
auto
url="/test"
method="POST"
handleAs="json"
body="{{data}}"
on-core-response="{{handleResponse"}}>
</core-ajax>
当用户发布到/ test时,我设置了一个服务器来返回POST消息的正文。
app.post('/test', function(req, res) {
res.json(req.body);
}
然而,这是我在控制台上得到的响应:
对象{object Object:“”}
答案 0 :(得分:0)
这看起来像core-ajax在this.data准备好之前执行AJAX调用。
尝试'manuel'AJAX请求启动,即ajax.go() 在里面这样做:
created: function() {
this.data = {
name: 'John Doe',
email: 'john@doe.com'
};
var respuesta = this.$.ajax;
console.log(respuesta);
respuesta.go();
},
示例Plunk
答案 1 :(得分:0)
核心ajax您希望通过帖子获取的所有数据必须使用params属性而不是body属性发送。
这将使您的核心ajax标记看起来像
<core-ajax
id="ajax"
auto
url="/test"
method="POST"
handleAs="json"
params="{{data}}"
on-core-response="{{handleResponse"}}>
</core-ajax>
这将允许您捕获节点
中的正常数据app.post('/test', function(req, res) {
res.json(req.body);
}
令人困惑的是节点中你认为params是将数据和主体作为后期数据,但这与核心ajax无关。使用params属性发送所有数据get或post。