Polymer 1.0 Iron-Ajax

use*_*935 8 ajax polymer

我试图通过在Polymer 0.5中工作的PHP脚本获取数据.我只是得到null响应并且在Polymer 1.0中没有错误,下面是代码.我已经尝试修改PHP以回显任何东西,但我得不到任何回应.hresponse确实触发,但此时只有请求信息在ajax中,响应信息为空.我找不到一个例子来看我出错的地方.谢谢

<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);
}
Run Code Online (Sandbox Code Playgroud)

Eri*_*ann 25

this.$.ajax.params=脚本中添加内部时,它应该是一个对象.当您查看生成请求的iron-ajax.html中的位置时,您将看到为什么会出现这种情况.您当前正在将其添加为String.尝试将行设置为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>
Run Code Online (Sandbox Code Playgroud)


Jen*_*h J 0

我第一次回答,也是编程新手,所以它并不完全正确。但它可以帮助你

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>
Run Code Online (Sandbox Code Playgroud)

我也想知道你的脚本是否是这样工作的。

  • Polymer 元素属性自动从驼峰命名法更改为连字符小写属性(从 v1.0.0 开始)。 (2认同)
  • “hresponse”应为“{{ hresponse }}”以启用绑定 (2认同)