我在Polymer项目中使用iron-ajax来登录用户。将用户详细信息发送到数据库后,如果登录成功,我需要返回一个令牌。但是,我在回复方面遇到了麻烦。如果有人可以查看我的代码并告诉我我错过了什么,那就太棒了。
当我输出repos属性时,控制台当前返回undefined。下面是我的iron-ajax我的属性的代码以及用户发送详细信息时调用的函数。
另外我添加了我想要返回的内容。
<dom-module id="login-form">
<template>
<iron-ajax
id="requestUser"
url="http://api.dev/oauth/token"
handle-as="json"
method="POST"
content-type="application/json"
body='{
"grant_type": "password",
"client_id": 2,
"client_secret": "KyHacYa2Q7DCTVLaDe1RSnvTlTI20CrmYb7FXujb",
"username": "user1@test.com",
"password": "1111",
"scope": "*"}'
last-response="handleResponse"></iron-ajax>
</template>
<script>
Polymer({
is: 'login-form',
properties: {
repos: {
type: Array
},
},
//On-tap loginTheUser runs
loginTheUser: function() {
this.$.requestUser.generateRequest();
},
handleResponse: function (data) {
this.repos = data.details.response;
console.log(this.repos);
},
</script>
</dom-module>
以下是我尝试返回的令牌:
{
"token_type": "Bearer",
"expires_in": 3155673599,
"access_token": "eyJ0eXAiOiJKV1...",
"refresh_token": "271VWcUXisybg="
}
答案 0 :(得分:0)
<iron-ajax>.lastResponse
实际上是Object
,表示最后收到的来自AJAX请求的响应。您可以bind到标记中的属性(似乎repos
是目标):
<iron-ajax last-response="{{repos}}">
您传递的是方法名称,这意味着您实际上正在尝试为<iron-ajax>.response
事件设置处理程序。为此,您可以使用以下内容创建annotated event listener
<iron-ajax on-response="handleResponse">
请注意,如果data.details
data.detail
data
为CustomEvent
),您的回复处理程序会错误地尝试阅读public class BaseController : Controller
{
protected virtual new CustomPrincipal User
{
get { return HttpContext.User as CustomPrincipal; } ***<== Line with issue***
}
}
。