我使用的是最新的聚合物(1.2.0),而且我在从铁局部存储到铁 - 阿贾克斯标题字段的数据绑定方面遇到了麻烦。我在检查请求时没有看到Authorization标头设置。当我创建一个没有数据绑定的有效头文件对象时,我已经验证了请求是否有效。
我做错了什么,或者它的设计是不是像这样使用?
<iron-localstorage name="userToken" value="{{localtoken}}" use-raw></iron-localstorage>
<iron-ajax url="api/twitter/v1/private/gettweets" last-response="{{data}}" auto
headers= '{"Authorization":"Bearer [[localtoken]]}"'
handle-as="json">
</iron-ajax>
<iron-list items="[[data.futuretweets]]" as="item">
<template>
<div>
datetime: <span>[[item.datetime]]</span>
text: <span>[[item.text]]</span>
</div>
</template>
</iron-list>
答案 0 :(得分:1)
我认为你的复合绑定中有拼写错误,这是一个更正版本:
<iron-ajax url="api/twitter/v1/private/gettweets" last-response="{{data}}" auto
headers= '{"Authorization":"Bearer [[localtoken]]"}'
handle-as="json">
</iron-ajax>
[编辑]因为它不起作用,请尝试使用这样的计算函数:
<iron-ajax url="api/twitter/v1/private/gettweets" last-response="{{data}}" auto
headers='_computeHeaders(localtoken)'
handle-as="json">
</iron-ajax>
,其中
_computeHeaders(localtoken) {
return {"Authorization": "Bearer " + localtoken};
}
答案 1 :(得分:1)
不应该&#39; T:
_computeHeaders(localtoken) {
return '{"Authorization":"Bearer ' + localtoken + '"}';
}
取而代之的是:
_computeHeaders: function(localtoken){
return '{"Authorization":"Bearer ' + localtoken + '"}';
}
答案 2 :(得分:1)
我找到了一点解决方法。
我正在使用启用了身份验证服务的环回,并且我使用iron-localstorage
保存身份验证令牌。我发现的问题是iron-ajax
的“自动”让任何(几乎)iron-ajax
参数发生变化时启动请求。当请求开始时,尚未填充localstorage
值
<iron-localstorage name="appdata" value="{{user}}"></iron-localstorage>
和
<iron-ajax auto="{{user.id}}" headers$='{"Authorization" :"{{user.id}}"}' url="/api/data" handle-as="json" last-response="{{data}}"></iron-ajax>
解决方法位于auto="{{user.id}}"
内。在未加载用户时,user.id为false。加载后,它会成为匹配为真的东西。这也导致iron-ajax
标头属性内部发生变化,导致“自动”请求发送被触发。