2012-05-26 73 views
0

我想爲我的本地條件加載國家氣象服務xml文檔。我似乎無法成功從他們的服務器加載文件,但如果我在本地保存文件,它就可以工作。jQuery不能從服務器加載xml

$.ajax({ 
     type: 'GET', 
     url: 'http://www.weather.gov/xml/current_obs/KROC.xml', 
     datatype: 'xml' }) 
      .done(function(data) { alert("Server: success"); }) 
      .fail(function(jqXHR, textStatus, errorThrown) { alert("Server: error:"+jqXHR.statusText+' textStatus='+textStatus+', errorThrown='+errorThrown); }) 
      .always(function() { alert("Server: complete"); }); 

那人給本作錯誤警報:

Server: error:error textStatus=error, errorThrown=

但是,如果我在本地保存該文件是這樣的:

$.ajax({ 
     type: 'GET', 
     url: 'xml/KROC.xml', 
     datatype: 'xml' }) 
      .done(function(data) { alert("Client: success"); }) 
      .fail(function(jqXHR, textStatus, errorThrown) { alert("Client: error:"+jqXHR.statusText+' textStatus='+textStatus+', errorThrown='+errorThrown); }) 
      .always(function() { alert("Client: complete"); });  

然後它成功加載。這讓我瘋狂。

回答

0

該方法必須首先解決Ajax程序使用的XMLHttpRequest對象的基本限制:相同的域問題。

出於安全原因,XMLHttpRequest調用只能向發送原始網頁的同一臺服務器發起請求。除非我爲美國國家氣象局工作,否則我的服務器不在他們的域名之列(www.nws.noaa.gov)。

http://www.ibm.com/developerworks/xml/library/x-xmlajaxpt1/index.html