JQuery调用XML webservice
问题描述:
我正在尝试jQuery与webservices和callign打开他从美国机场打开xml服务。JQuery调用XML webservice
webservice的网址是http://services.faa.gov/airport/status/IAD?format=application/xml
和下面我查询代码,但是当页面加载它显示一个空的屏幕:(有人可以指导我一下,我在网上搜索并且不可能”搞清楚。
<html>
<head>
<script type="text/javascript" src="assets/jquery.js"></script>
<title>Aviation</title>
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
type: "GET",
url: "http://services.faa.gov/airport/status/IAD?format=application/xml",
dataType: "xml",
success: xmlParser
});
});
function xmlParser(xml) {
$('#airport').fadeOut();
$(xml).find("AirportStatus").each(function() {
$("#details").append($(this).find("ICAO").text() + "</br>"+ $(this).find("State").text());
//$(".book").fadeIn(1000);
});
}
</script>
</head>
<body>
<p id="airport">Loading...</p>
<p id="details"></p>
</body>
</html>
感谢您的时间提前。
答
其通过CORS限制你不能跨域访问数据,而且XML似乎有一些格式问题尝试JSON格式沿
$.ajax({
type: "GET",
url: "http://services.faa.gov/airport/status/IAD?format=json",
dataType: "jsonp",
success: function(data){
alert("asd");
console.log(data);
}
});
答
有错误,当我在http://jsfiddle.net/QYQ4V/2/
执行你的js因为你是不允许使用Ajax调用从其他领域获取数据...(除非使用JSONP或脚本的数据类型。)JSONP:http://en.wikipedia.org/wiki/JSONP
所以这意味着你可以使用其他语言(蟒蛇/红宝石/ Java)来获取数据,并使用jQuery在同一个域中获取数据,而TH在jQuery中使用XHR($。ajax)。
答
FYI
服务器侧返回XML和响应HTTP标头 '内容类型'= '应用/ XML',这应该是 '文本/ XML',
和低电平的XMLHttpRequest使用“应用/ xml',以便发生冲突。
如果您的网络服务可访问或不可访问,请使用Mozilla的萤火虫插件测试您的网页,具体请参阅网络面板的XHR选项卡。确保没有500内部服务器错误或404资源未找到异常未来。它看起来很清楚你的问题是你的web服务没有被调用 – Devjosh 2012-01-12 05:59:11
我使用萤火虫检查。我也不太喜欢萤火虫。但看到在“响应”下没有任何东西显示为空,但没有显示错误或错误信息。 – 2012-01-12 06:06:08
按ctrl + shift + k在那里你会发现NET按钮看到下面是你的网页是否向webservice发出请求或没有响应意味着你的脚本根本不会调用webservice – Devjosh 2012-01-12 06:12:06