2013-02-11 31 views
0

使用JQuery从MSN Weather API中将XML数据读取到.aspx页面?使用JQuery从MSN Weather API中将XML数据读取到.aspx页面?

我正在连接MSN天气api,并获取XML数据,当我阅读XML数据ie10,铬,火狐它将无法正常工作。

  1. SEC7120:起源http:未在Access-Control-Allow-Origin标头中找到。 weatherwg5.aspx
  2. SCRIPT7002:XMLHttpRequest:网络错误0x80070005,访问被拒绝。

即9即ie8即ie7我将以这种方式工作。

当我点击是我的代码工作正常。

请给出优良的解决方案。

var xmlHttp; 
var district = geoplugin_city(); 
alert(district); 
var url = 'http://weather.service.msn.com/data.aspx?weadegreetype=F&culture=en-US&weasearchstr=' + district + ''; 
$(document).ready(function() { 
    loadXMLDoc(url); 
}); 

function loadXMLDoc(url) { 
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp = new XMLHttpRequest(); 
     alert('object is crested:' + xmlhttp); 
    } else { // code for IE6, IE5 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     alert('Microsoft.XMLHTTP:' + xmlhttp); 
    } 
    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
      alert('success'); 
      xmlDoc = xmlhttp.responseText; 
      alert(xmlDoc); 
      var result = xmlhttp.responseXML; 
      alert(result); 
      var weatherdata1 = $(result).find('\\weather').attr('weatherlocationname'); 
      alert(weatherdata1); 
      $('#weatherdate').html(weatherdata1); 
     } 
    } 
    xmlhttp.open("GET", url, true); 
    xmlhttp.send(); 
} 

回答

0

当你使用jQuery的ajax()函数时,你有同样的问题吗?

var district = '63366'; 

var weatherUrl = 'http://weather.service.msn.com/data.aspx?weadegreetype=F&culture=en-US&weasearchstr=' + district; 

$(document).ready(function() { 
    $.ajax({ 
     url : weatherUrl, 
     complete : function(jqXHR, textStatus) { 
      if (textStatus !== 'success') { 
       alert('Error: ' + jqXHR.statusText); 
      } else { 
       setWeatherData(jqXHR); 
      } 
     } 
    }); 
}); 

function setWeatherData(jqXHR) { 
    var weatherLocation = $(jqXHR).find('weather').first().attr('weatherlocationname'); 

    $('#weatherdata').html(weatherLocation); 
}