【问题标题】:how to make REST request with iron-ajax using user input如何使用用户输入使用 Iron-ajax 发出 REST 请求
【发布时间】:2017-05-21 08:48:03
【问题描述】:

我正在尝试为网页提供几个下拉选择菜单和一个按钮。单击按钮时,将向 url 发送带有 JSON 对象的 POST 请求,并返回带有 JSON 对象的响应。 Iron-ajax 是否支持此功能?

文档显示params可以用来设置JSON对象。逻辑如下吗?

  • 将 iron-ajax 的 params 设置为 DOM 的某个变量
  • 为按钮按下编写一个buttonClicked()函数,它从下拉菜单中更新DOM的变量,并调用iron-ajax的generateRequest()方法

文档中的示例如下所示

<iron-ajax auto url="https://www.googleapis.com/youtube/v3/search" params='{"part":"snippet", "q":"polymer", "key": "YOUTUBE_API_KEY", "type": "video"}' handle-as="json" on-response="handleResponse" debounce-duration="300"></iron-ajax>

鉴于所描述的策略有效,我的问题是

  • 我要删除auto 以避免它自动发送请求吗?
  • params 分配看起来像 params= '{{myJsonString}}'
  • 如何调用特定iron-ajax对象的generateRequest()(假设页面中有多个iron-ajax标签)?

【问题讨论】:

    标签: javascript json ajax polymer


    【解决方案1】:

    我是否要删除 auto 以避免它自动发送请求?

    是的

    params 分配看起来像 params= '{{myJsonString}}'

    去掉单引号: params="[[myJsonObject]]" myJsonObject 是一个普通的 javascript 对象,例如:

    {
      param1 : 'param1 value',
      param2 : 'param2 value'
    }
    

    请注意,如果要绑定到 params 属性,则必须使用 javascript 对象而不是其字符串。

    如何调用特定 Iron-ajax 对象的 generateRequest() (假设页面中有多个 iron-ajax 标签)?

    您可以为您的 iron-ajax 标签分配一个 id:

    <iron-ajax id="myAjax1"
        auto
        url="https://www.googleapis.com/youtube/v3/search"
        params='{"part":"snippet", "q":"polymer", "key": "YOUTUBE_API_KEY", "type": "video"}'
        handle-as="json"
        on-response="handleResponse"
        debounce-duration="300"></iron-ajax>
    

    从你的 javascript 代码中获取它,如下所示:

    this.$.myAjax1
    

    【讨论】:

    • 你能告诉我myJsonObject的样子吗?非常感谢。
    • 属性中定义的简单 javascript 对象(将更新我的答案)
    猜你喜欢
    • 2018-06-16
    • 2019-03-18
    • 2020-06-17
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    相关资源
    最近更新 更多