我在umbraco中有一个web服务,它似乎没有被我的Jquery解析,当我运行代码时,我确实得到了警告框,但它只是有消息" undefined"重复,我期待标题,请看下面的代码。
[WebMethod]
public List<NewsItem> GetNewsItems()
{
List<NewsItem> returnValue = new List<NewsItem>();
foreach (umbraco.presentation.nodeFactory.Node item in new umbraco.presentation.nodeFactory.Node(190078).Children)
returnValue.Add(new NewsItem() { Header = item.Name, path = item.Url, Id = item.Id });
return returnValue;
}
...
public class NewsItem
{
public string Header { get; set; }
public string path { get; set; }
public int Id { get; set; }
}
当我浏览它时它很好。定义如下: -
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetNewsItemsResponse xmlns="http://countryumbraco/">
<GetNewsItemsResult>
<NewsItem>
<Header>string</Header>
<path>string</path>
<Id>int</Id>
</NewsItem>
到目前为止,我的Jquery使用web服务如下: -
var webServiceURL = 'http://mydomain.com/umbraco/webservices/latestnews.asmx/GetNewsItems';
function CallService()
{
$.ajax({
type: "POST",
url: webServiceURL,
dataType: "xml",
processData: false,
success: OnSuccess,
error: OnError
});
return false;
}
function OnSuccess(xml)
{
$(xml).find("NewsItem").each(function()
{
alert($(this).attr("Header"));
});
}
function OnError(request, status, error)
{
alert('Error');
}
$(document).ready(function() {
jQuery.support.cors = true;
});
我在这里做错了什么想法?
答案 0 :(得分:1)
$(xml).find('NewsItem').each(function(){
var header= $(this).find('Header').text();alert(header);
}