我在Windows Phone上遇到了Cordova 2.6.0和jQuery 1.8.1的问题!
当我制作$(xmlHttpRequest.responseXML).find("Item")
(适用于iOS / Android和浏览器)时,它会在Windows手机上返回一个空元素...我需要制作一个xmlHttpRequest.responseXML.documentElement
并导航孩子们找到我的元素......
所以问题似乎是jQuery,但为什么呢?有什么想法吗?
谢谢!
编辑:我得到的SOAP Envelop是这样的(在WP8上看到Fiddler)<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<MethodName xmlns="http://url.com/services/contract">
<MethodNameResult xmlns:a="http://schemas.datacontract.org/2004/07/xxx.yyy.aaa.bb.cc.Result" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<a:Item xmlns:b="http://schemas.datacontract.org/2004/07/xxx.yyy.aaa.bb.cc">
<b:Active>Active</b:Active>
<b:Comment i:nil="true"/>
<b:Company>My company</b:Company>
<b:DisplayName>The best company ever</b:DisplayName>
<b:Email>contact@url.com</b:Email>
<b:Fax i:nil="true"/>
<b:FirstName>Alx</b:FirstName>
<b:GenderTypeId>Male</b:GenderTypeId>
...
编辑:.find("a:Item")
无效!
答案 0 :(得分:2)
另一种解决方案是制作这样的新功能:
$.fn.filterNode = function(name) {
return this.find('*').filter(function() {
return this.nodeName === name;
});
};
并将名称设为“a:Item”!
我不知道为什么,但此解决方案适用于WindowsPhone Web App!
答案 1 :(得分:1)
您不应该以这种方式解析XML,而是使用jQuery和DataType xml的ajax方法。 我不知道这是否会导致问题,但可能是。
查看此帖子: Can XML be parsed reliably using jQuery's $(responseXML) syntax?