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> 

感谢您的时间提前。

+0

如果您的网络服务可访问或不可访问,请使用Mozilla的萤火虫插件测试您的网页,具体请参阅网络面板的XHR选项卡。确保没有500内部服务器错误或404资源未找到异常未来。它看起来很清楚你的问题是你的web服务没有被调用 – Devjosh 2012-01-12 05:59:11

+0

我使用萤火虫检查。我也不太喜欢萤火虫。但看到在“响应”下没有任何东西显示为空,但没有显示错误或错误信息。 – 2012-01-12 06:06:08

+0

按ctrl + shift + k在那里你会发现NET按钮看到下面是你的网页是否向webservice发出请求或没有响应意味着你的脚本根本不会调用webservice – Devjosh 2012-01-12 06:12:06

其通过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/WxMXR/7/

有错误,当我在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',以便发生冲突。