我正在尝试根据当地情况加载国家气象服务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"); });
那个人给出了一个错误警告:
服务器:错误:错误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 :(得分:0)
这种方法必须首先解决Ajax程序使用的XMLHttpRequest对象的基本限制:相同的域问题。
出于安全原因,XMLHttpRequest调用只能向发送原始网页的同一服务器发起请求。除非我为国家气象局工作,否则我的服务器不属于他们的域名(www.nws.noaa.gov)。
http://www.ibm.com/developerworks/xml/library/x-xmlajaxpt1/index.html