JQuery调用XML Web服务

时间:2012-01-12 05:56:04

标签: javascript jquery xml web-services

我正在尝试使用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>

感谢您的提前时间。

3 个答案:

答案 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);
    }
        });

http://jsfiddle.net/WxMXR/7/

答案 1 :(得分:1)

http://jsfiddle.net/QYQ4V/2/

中执行js时出错

因为不允许您使用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,以便发生冲突。