0

我正在尝试根据当地条件加载国家气象服务 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"); });

那是一个错误警报:

服务器: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"); });     

然后加载成功。这让我疯狂。

4

1 回答 1

0

这种方法必须首先解决 Ajax 程序使用的 XMLHttpRequest 对象的一个​​基本限制:同域问题。

出于安全原因,XMLHttpRequest 调用只能向传递原始网页的同一服务器发起请求。除非我为国家气象局工作,否则我的服务器在他们的域之外 (www.nws.noaa.gov)。

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

于 2012-05-27T19:29:15.873 回答