从 Iron-Ajax 调用中检索结果
Retrieving results from Iron-Ajax call
我开始使用 Polymer,尤其是 iron-ajax,用于从 ASP.Net WebAPI 服务检索 JSON 数据。我可以调用该服务,但是我无法获得该服务返回的结果。
这是我的铁-ajax元素:
<iron-ajax auto
url="http://local.webapi2.com/api/values"
headers='{ "Key": "d72ad080-e3dd-43ea-ba95-0cd2a5a58bb1" }'
handle-as="json"
content-type="application/json"
method='GET'
verbose="true"
on-response="handleResponse"></iron-ajax>
这是我的 handleResponse 函数:
handleResponse: function (jsonFromServer)
{
console.log('response from server:', jsonFromServer);
}
这是我的 WebAPI 端点:
[RoutePrefix("api/values")]
public class ValuesController : ApiController
{
// GET api/values
[Route("")]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2", "value3", "value4", "value5", "value6" };
}
}
我使用的是 Firefox 浏览器。使用 Firebug 的网络选项卡,我可以看到对 http://local.webapi2.com/api/values 的调用,我可以看到返回的结果:
["value1","value2","value3","value4","value5","value6"]
然而,在Firebug的控制台中,我只看到了这个:
response from server: response
其中 'response' 是一个对象,似乎是关于 'iron-ajax' 元素本身的详细信息。预期结果数据永远不会显示在控制台中。此外,控制台中 WebAPI 调用的 Response 选项卡的值为 null。控制台中 WebAPI 调用下的详细信息中甚至没有 JSON 选项卡。
我不确定为什么“网络”选项卡具有您所期望的完整和准确的结果,但“控制台”选项卡无效并且我看到一个 'response' 对象。
我在 Chrome 也遇到了同样的情况。
我错过了什么?是配置问题吗?谢谢你的时间。
我实际上也在使用 ASP.NET Web API,但没有遇到过这个问题。
问题可能出在这一行 -
handleResponse: function (jsonFromServer)
{
console.log('response from server:', jsonFromServer);
}
参数不是直接的 return 值,而是整个 事件对象 。所以也许试试 -
handleResponse: function (e)
{
console.log('response from server:', e.detail.response); // or e.detail.xhr.repsone
}
我开始使用 Polymer,尤其是 iron-ajax,用于从 ASP.Net WebAPI 服务检索 JSON 数据。我可以调用该服务,但是我无法获得该服务返回的结果。
这是我的铁-ajax元素:
<iron-ajax auto
url="http://local.webapi2.com/api/values"
headers='{ "Key": "d72ad080-e3dd-43ea-ba95-0cd2a5a58bb1" }'
handle-as="json"
content-type="application/json"
method='GET'
verbose="true"
on-response="handleResponse"></iron-ajax>
这是我的 handleResponse 函数:
handleResponse: function (jsonFromServer)
{
console.log('response from server:', jsonFromServer);
}
这是我的 WebAPI 端点:
[RoutePrefix("api/values")]
public class ValuesController : ApiController
{
// GET api/values
[Route("")]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2", "value3", "value4", "value5", "value6" };
}
}
我使用的是 Firefox 浏览器。使用 Firebug 的网络选项卡,我可以看到对 http://local.webapi2.com/api/values 的调用,我可以看到返回的结果:
["value1","value2","value3","value4","value5","value6"]
然而,在Firebug的控制台中,我只看到了这个:
response from server: response
其中 'response' 是一个对象,似乎是关于 'iron-ajax' 元素本身的详细信息。预期结果数据永远不会显示在控制台中。此外,控制台中 WebAPI 调用的 Response 选项卡的值为 null。控制台中 WebAPI 调用下的详细信息中甚至没有 JSON 选项卡。
我不确定为什么“网络”选项卡具有您所期望的完整和准确的结果,但“控制台”选项卡无效并且我看到一个 'response' 对象。
我在 Chrome 也遇到了同样的情况。
我错过了什么?是配置问题吗?谢谢你的时间。
我实际上也在使用 ASP.NET Web API,但没有遇到过这个问题。
问题可能出在这一行 -
handleResponse: function (jsonFromServer)
{
console.log('response from server:', jsonFromServer);
}
参数不是直接的 return 值,而是整个 事件对象 。所以也许试试 -
handleResponse: function (e)
{
console.log('response from server:', e.detail.response); // or e.detail.xhr.repsone
}