Polymer 0.5で動作するphpスクリプトを介してデータを取得しようとしています。Polymer 1.0でエラーが発生せず、null応答が返されます。以下はコードです。 。PHPを変更して何かをエコーしようとしましたが、応答がありません。hresponseは起動しますが、その時点では要求情報のみがajaxにあり、応答情報はnullです。例が見つかりません。私がどこを間違えたかを見るために
<iron-ajax
id="ajax"
url=""
params=""
handle-as="json"
on-response="hresponse"
debounce-duration="300">
</iron-ajax>
and the script
setajax: function(){
this.$.ajax.url = "Scripts/getnotes.php";
this.$.ajax.params='{"SN":"VBA056"}';
this.$.ajax.generateRequest();
}
hresponse: function(e) {
console.log(e.detail.response);
console.log(this.$.ajax.lastResponse);
}
スクリプト内にthis.$.ajax.params=
を追加する場合、それはオブジェクトである必要があります。リクエストが生成されるiron-ajax.html内の場所を調べると、これが当てはまる理由がわかります。現在、文字列として追加しています。行をthis.$.ajax.params={"SN":"VBA056"}
に設定してみてください。そうすれば、機能するはずです。
次の例は機能します(必要なすべての要素をインポートしていると仮定します)。
<body>
<my-app></my-app>
<dom-module id="my-app">
<style>
</style>
<template>
<iron-ajax
id="ajax"
url=""
handle-as="json"
on-response="hresponse"
debounce-duration="300">
</iron-ajax>
<button on-click="setajax">Click me</button>
</template>
<script>
Polymer({
is: "my-app",
setajax: function () {
this.$.ajax.url = "http://jsonplaceholder.typicode.com/posts";
this.$.ajax.params = {"userId":"1"};
this.$.ajax.generateRequest();
},
hresponse: function(request) {
console.log(request.detail.response);
console.log(this.$.ajax.lastResponse);
}
});
</script>
</dom-module>
</body>
私の初めての回答とプログラミングの初心者なので、完全には正しくありません。しかし、それはあなたを助けることができます
on-response
で提供されているドキュメントによると、https://elements.polymer-project.org/elements/iron-ajax
のようなプロパティはありません。
あなたのiron-ajax
を変更する必要があります。私も初心者なので、うまくいくかどうか疑問に思いますが、試してみる価値はあります。
<iron-ajax
auto
url=""
params=""
handleAs="json"
lastResponse="hresponse"
method='GET'>
</iron-ajax>
また、スクリプトがそのように機能するかどうかも疑問です。