无法使用 Polymer 的核心 -ajax 执行 POST 请求
Can't do POST requests with Polymer's core-ajax
这是我的:
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>
我有一个服务器设置为 return 当用户发布到 /test 时 POST 消息的正文。
app.post('/test', function(req, res) {
res.json(req.body);
}
但是,这是我在控制台上得到的响应:
对象{对象对象:“”}
这看起来像 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
核心 ajax 您想要通过 post 获取的所有数据都必须使用 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);
}
令人困惑的是,在节点中,您认为参数是获取数据,正文是 post 数据,但这与核心 ajax 无关。所有数据获取或 post 都使用 params 属性发送。
这是我的:
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>
我有一个服务器设置为 return 当用户发布到 /test 时 POST 消息的正文。
app.post('/test', function(req, res) {
res.json(req.body);
}
但是,这是我在控制台上得到的响应:
对象{对象对象:“”}
这看起来像 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
核心 ajax 您想要通过 post 获取的所有数据都必须使用 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);
}
令人困惑的是,在节点中,您认为参数是获取数据,正文是 post 数据,但这与核心 ajax 无关。所有数据获取或 post 都使用 params 属性发送。