我正在尝试使用Polymer core-ajax元素从在线API中提取数据。通过开发人员工具检查API请求是否成功使用代码200并返回预期的XML响应。但响应对象为null阻止我继续。
这是我的核心要素,
<polymer-element name="get-employees" attributes="employeeList">
<template>
<core-ajax id="ajax" auto
url="https://localhost:8443/GetEmployees"
method='POST'
headers='{"X-Token":"4517612052875154027"}'
handleAs='xml'
contentType="application/xml"
response= "{{resp}}"
on-core-complete="{{success}}"
on-core-error="{{errorF}}"
body='<?xml version="1.0" encoding="UTF-8" standalone="no"?><GetEmployees xmlns="http://www.22s.net/emp/1.0"><<Employees><Employee><EmployeeNo/><TitleCode/><Initials/> <GivenNames/><Surname/></GetEmployees>'>
</core-ajax>
<template repeat="{{employee in resp | nodeList('Employee') }}" id="tem">
<div class="empcard" flex>
<div>{{employee || nodeText('GivenNames')}}</div>
</div>
</template>
</template>
<script>
Polymer('get-employees', {
errorF: function(){
console.log('Error occured');
},
success: function(event, detail, sender){
console.log(event);
},
nodeList: function(element, name) {
var arr;
arr = element ?
[].slice.call(element.querySelectorAll(name)) : ['No Employees for the given query'];
return arr;
},
nodeText: function(element, name) {
return element.querySelector(name).innerHTML;
}
});
</script>
</polymer-element>
以下列格式返回的XML
<?xml version="1.0" encoding="UTF-8"?>
<GetEmployeesResponse xmlns="http://www.22s.net/emp/1.0">
<APIResponseStatus>
<Code>OK</Code>
</APIResponseStatus>
<Employees>
<Employee>
<EmployeeNo>ISH001</EmployeeNo>
<GivenNames>Omid</GivenNames>
<Initials>OR</Initials>
<Surname>KORDESTANI</Surname>
<TitleCode>Mr</TitleCode>
</Employee>
<Employee>
<EmployeeNo>ISH002</EmployeeNo>
<GivenNames>Gary</GivenNames>
<Initials>GR</Initials>
<Surname>PARANTE</Surname>
<TitleCode>Mr</TitleCode>
</Employee>
</Employees>
</GetEmployeesResponse>
当我在成功方法中调试事件或详细信息对象时,方法不包含返回XML或 resp 对象。 nodeList 函数的元素参数也会返回“No Employees ....”消息。
有人可以让我知道我搞砸了哪里。我已经尝试了其他方法,但到目前为止还没有成功。
修改: 当我将响应XML保存在服务器文件中并向页面显示GET请求时,
[Object Element]
[Object Element]
[Object Element]
通过模板。它与XML完全相同。我很困惑!!!!!!!!
提前致谢, 的Ish
答案 0 :(得分:0)
我遇到了同样的问题。确保服务器使用
返回正确的Header
'Content-Type: application/xml'
和/或返回的文件扩展名为.xml
。我使用简单的python SimpleHTTPServer
在同一文件上对它进行了两次测试:文件是否具有扩展.xml
core-ajax
按预期工作;将扩展程序更改为.kml
会导致null
响应按组件进行。
希望它有所帮助。