我正在尝试使用webservices练习jquery,并从美国机场打开xml服务。
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>
感谢您的提前时间。
答案 0 :(得分:3)
受CORS限制,您无法访问域中的数据,而且xml似乎有一些格式问题尝试json格式以及dataType:'jsonp'
$.ajax({
type: "GET",
url: "http://services.faa.gov/airport/status/IAD?format=json",
dataType: "jsonp",
success: function(data){
alert("asd");
console.log(data);
}
});
答案 1 :(得分:1)
因为不允许您使用ajax调用从其他域获取数据...(除非使用JSONP或脚本数据类型..)JSONP:http://en.wikipedia.org/wiki/JSONP
这意味着您可以使用其他语言(python / ruby / java)来获取数据并使用jquery来获取同一域中的数据,而不是在jQuery中使用XHR($ .ajax)。
答案 2 :(得分:0)
FYI
服务器端返回xml和响应http标头'Content-Type'='application / xml'应为'text / xml',
和使用'application / xml'的低级XMLHttpRequest,以便发生冲突。