iron-ajax 请求问题
Issue with iron-ajax request
我有以下 Web API 方法:
[Route("api/ConfAccount/ByToken")]
public conf_account GetByToken(string token)
{
conf_accountDAO dao = new conf_accountDAO();
try
{
string tokenJson = Crypto.DecryptStringAES(token, "S1gn2s2f3!");
if (tokenJson != null)
{
Token myToken = Newtonsoft.Json.JsonConvert.DeserializeObject(tokenJson) as Token;
var obj = dao.GetObjectByUser(myToken.name);
if (obj != null)
{
return obj as conf_account;
}
else
{
return null;
}
}
else
{
return null;
}
}
catch {
return null;
}
}
我试图从 Polymer Web 应用程序发出请求,我有一个调用此方法的元素,但我找不到正确配置 iron-ajax 对象以调用此方法的方法:
元素
<dom-module id="my-welcome">
<template>
<style>
:host {
display: block;
}
.div-general{
@apply(--layout-horizontal);
width: 100%;
height: 40px;
vertical-align: middle;
display: table-cell;
}
.span-center-middle{
vertical-align: middle;
}
</style>
<iron-ajax
verbose
url="http://192.168.0.16/SignaSafePro/api/ConfAccount/ByToken?"
method='GET'
params = '{{token}}'
headers='{"Accept": "application/json"}'
handle-as="json"
content-type="application/json"
on-response="handleResponse"
debounce-duration="300"
id='ajaxWelcomeElement'>
</iron-ajax>
<iron-localstorage name="my-signasafe-storage" id="localStorage_id" auto-save-disabled useRaw></iron-localstorage>
<div class="div-general">
<paper-icon-button icon="account-circle" id="icon_account"></paper-icon-button>
<span class="span-center-middle">{{welcome_text}}</span>
</div>
</template>
<script>
Polymer({
is: 'my-welcome',
properties: {
conf_account: {
type: Object,
notify: true
},
welcome_text:{
type: String,
notify: true
},
token:{
type: String,
notify: true
}
},
ready: function() {
var localstorage = this.$$('#localStorage_id');
localstorage.reload();
var tokenAux = localstorage.value;
this.token = tokenAux;
var obj = this.$$('#ajaxWelcomeElement');
if(this.token != null){
obj.generateRequest();
}else{
this.welcome_text = 'Welcome Guest';
}
},
handleResponse: function(request){
var result = request.detail.response;
if(result.ResultObject != null){
this.conf_account = result.ResultObject;
if(this.conf_account != null){
this.welcome_text = 'Welcome ' + this.conf_account.conf_account_name;
}else{
this.welcome_text = 'Welcome Guest';
}
}
}
});
</script>
我在控制台收到 Url 请求:
我不知道为什么 url 会这样,因为 url 应该是:
GET api/ConfAccount/ByToken?token={token}
非常感谢您对此提供的任何帮助。
注:
我得到的错误是错误:404
我通过这种方式解决了更改 iron-ajax 元素的问题:
<iron-ajax
verbose
url="http://192.168.0.16/SignaSafePro/api/ConfAccount/ByToken?token={{token}}"
method='GET'
handle-as = "json"
content-type = 'application/json'
on-response="handleResponse"
debounce-duration="300"
id='ajaxWelcomeElement'>
</iron-ajax>
谢谢
我有以下 Web API 方法:
[Route("api/ConfAccount/ByToken")]
public conf_account GetByToken(string token)
{
conf_accountDAO dao = new conf_accountDAO();
try
{
string tokenJson = Crypto.DecryptStringAES(token, "S1gn2s2f3!");
if (tokenJson != null)
{
Token myToken = Newtonsoft.Json.JsonConvert.DeserializeObject(tokenJson) as Token;
var obj = dao.GetObjectByUser(myToken.name);
if (obj != null)
{
return obj as conf_account;
}
else
{
return null;
}
}
else
{
return null;
}
}
catch {
return null;
}
}
我试图从 Polymer Web 应用程序发出请求,我有一个调用此方法的元素,但我找不到正确配置 iron-ajax 对象以调用此方法的方法:
元素
<dom-module id="my-welcome">
<template>
<style>
:host {
display: block;
}
.div-general{
@apply(--layout-horizontal);
width: 100%;
height: 40px;
vertical-align: middle;
display: table-cell;
}
.span-center-middle{
vertical-align: middle;
}
</style>
<iron-ajax
verbose
url="http://192.168.0.16/SignaSafePro/api/ConfAccount/ByToken?"
method='GET'
params = '{{token}}'
headers='{"Accept": "application/json"}'
handle-as="json"
content-type="application/json"
on-response="handleResponse"
debounce-duration="300"
id='ajaxWelcomeElement'>
</iron-ajax>
<iron-localstorage name="my-signasafe-storage" id="localStorage_id" auto-save-disabled useRaw></iron-localstorage>
<div class="div-general">
<paper-icon-button icon="account-circle" id="icon_account"></paper-icon-button>
<span class="span-center-middle">{{welcome_text}}</span>
</div>
</template>
<script>
Polymer({
is: 'my-welcome',
properties: {
conf_account: {
type: Object,
notify: true
},
welcome_text:{
type: String,
notify: true
},
token:{
type: String,
notify: true
}
},
ready: function() {
var localstorage = this.$$('#localStorage_id');
localstorage.reload();
var tokenAux = localstorage.value;
this.token = tokenAux;
var obj = this.$$('#ajaxWelcomeElement');
if(this.token != null){
obj.generateRequest();
}else{
this.welcome_text = 'Welcome Guest';
}
},
handleResponse: function(request){
var result = request.detail.response;
if(result.ResultObject != null){
this.conf_account = result.ResultObject;
if(this.conf_account != null){
this.welcome_text = 'Welcome ' + this.conf_account.conf_account_name;
}else{
this.welcome_text = 'Welcome Guest';
}
}
}
});
</script>
我在控制台收到 Url 请求:
我不知道为什么 url 会这样,因为 url 应该是:
GET api/ConfAccount/ByToken?token={token}
非常感谢您对此提供的任何帮助。
注:
我得到的错误是错误:404
我通过这种方式解决了更改 iron-ajax 元素的问题:
<iron-ajax
verbose
url="http://192.168.0.16/SignaSafePro/api/ConfAccount/ByToken?token={{token}}"
method='GET'
handle-as = "json"
content-type = 'application/json'
on-response="handleResponse"
debounce-duration="300"
id='ajaxWelcomeElement'>
</iron-ajax>
谢谢