2012-01-12 75 views
2

我正在嘗試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

回答

3

其通過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/

1

有錯誤,當我在http://jsfiddle.net/QYQ4V/2/

執行你的js因爲你是不允許使用Ajax調用從其他領域獲取數據...(除非使用JSONP或腳本的數據類型。)JSONP:http://en.wikipedia.org/wiki/JSONP

所以這意味着你可以使用其他語言(蟒蛇/紅寶石/ Java)來獲取數據,並使用jQuery在同一個域中獲取數據,而TH在jQuery中使用XHR($。ajax)。

0

FYI

服務器側返回XML和響應HTTP標頭 '內容類型'= '應用/ XML',這應該是 '文本/ XML',

和低電平的XMLHttpRequest使用「應用/ xml',以便發生衝突。