gpt4 book ai didi

polymer - Iron Ajax - 如何从响应功能访问响应?

转载 作者:行者123 更新时间:2023-12-04 13:13:04 28 4
gpt4 key购买 nike

我有这个元素:

<template>
...
<iron-ajax
id="ajax"
url="..."
handle-as="json"
verbose=true
last-response={{ajaxResponse}}
loading="{{cargando}}"
on-response="_handleResponse">
</iron-ajax>

<div id="resultado"></div>
</template>

<script>
Polymer({
...

_handleResponse: function(event){
console.log("_handleResponse... ");
// this.$.resultado.innerHTML = event.detail.innerHTML;
}
});
</script>

我在 Firebug 中看到的响应是:
<p>Hello word</p>

我想访问 _handleResponse 中的响应函数以将其设置为 innerHTMLresultado div,但没有任何效果。

我试过了:
  • event.detail.innerHTML
  • event.detail.response
  • event.detail.xhr.response
  • event.detail.xhr.responseText
  • event.detail.request.xhr.response (这条路线不存在,怎么可能是Polymer Iron Ajax - How to access Response from Request after Error Event?中的解决方案?)

  • 如果我在响应函数中调试和观察 e.detail.response 值:

    e.detail.response is null

    在网络选项卡中,我可以看到响应(简单的“你好”):

    Response in network tab

    最佳答案

    响应数据实际上是在 event.detail.response 中返回的的 <iron-ajax>.response 事件。您的 response字段是 null因为你配置错误 <iron-ajax>.handleAs .当您将其设置为 json 时, Accept-Type header 设置为 application/json并且任何响应都将被解析为 JSON.parse() .如果您的服务器忽略 Accept-Type并发送它想要的任何东西,<iron-request>将尝试将响应解析为 JSON 并失败,导致 null response bodyspec .请注意 hello<p>Hello</p>不是有效的 JSON 字符串。

    如果要接收明文数据,设置<iron-ajax>.handleAstext (默认值为 json )。

    Demo of <iron-ajax handle-as="text">

    Demo of <iron-ajax handle-as="json">



    question you linked询问 <iron-ajax>.error事件,它具有与 <iron-ajax>.response 不同的事件详细信息事件。

    <iron-ajax>收到服务器响应,它 fires the response event与相应的 <iron-request> 作为事件细节。

    如果请求因任何原因失败, <iron-ajax> fires the error event带有 对象 (通过 iron-request 属性包含 request,通过 error 包含底层错误)作为事件详细信息。

    关于polymer - Iron Ajax - 如何从响应功能访问响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40850079/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com