0

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

我正在连接 msn 天气 api,并在读取 xml 数据 ie10、chrome、firefox 时获取 xml 数据,它无法正常工作。

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

ie 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();
}
4

1 回答 1

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 );
}
于 2013-08-03T00:44:52.087 回答