[英]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>
我設置了一個服務器,以便在用戶發布到/ test時返回POST消息的正文。
app.post('/test', function(req, res) {
res.json(req.body);
}
但是,這是我在控制台上得到的響應:
對象{object Object:“”}
看起來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();
},
要使用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);
}
這是一個令人困惑的原因,因為在節點中您將參數視為獲取數據,將主體視為發布數據,但這與核心ajax無關。 所有獲取或發布的數據都使用params屬性發送。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.