我正在尝试向返回XML文档的ASPX页面发出jQuery $ ajax GET请求,但无法使其工作。我做错了什么?
的jQuery
$(document).ready(function() {
$("#loading").show();
$.ajax({
type: "GET",
url: "http://www.url.com/reports/xml.aspx",
dataType: "xml",
success: parseXml
});
function parseXml(xml) {
$(xml).find("Year").each(function() {
$("body").append( $(this).find("RevenueYear").text() + '<br />' });
}});
HTML
<!DOCTYPE html>
<html>
<head>
</head>
<body>
</body>
</html>
XML
<root>
<Year>
<RevenueYear>2011</RevenueYear>
<RevenueType>actual</RevenueType>
</Year>
<Year>
<RevenueYear>2012</RevenueYear>
<RevenueType>estimate</RevenueType>
</Year>
</root>
答案 0 :(得分:2)
归功于BNL,他提出了至关重要的问题!
的jQuery文档由于浏览器安全限制,大多数“Ajax”请求都是主题 同源政策;请求无法成功检索 来自不同域,子域或协议的数据。
前段时间,SO上有一个similar question - 解决方案非常简单: 只需创建一个Web代理(PHP,ASP.NET,...)来传输内容@服务器端,这样就可以避免使用同源策略。
答案 1 :(得分:1)
您的parseXml
函数有一些语法错误。您的}
和)
的编号错误。
应该是:
function parseXml(xml) {
$(xml).find("Year").each(function() {
$("body").append( $(this).find("RevenueYear").text() + '<br />');
});
}