XMLHttpRequest 接收未定义

XMLHttpRequest receiving undefined

我正在 iphone 上制作小部件,但无法从 url 获取数据。 在 IE 上,我可以获得数据。但是,在 chrome 和 iphone 上我无法获取数据,但它只显示未定义而不是数据。

function a() {
    var url="www.xxx.xxx";
    var request = new XMLHttpRequest();
    request.open('GET', url, false); 

    request.send();     
    xmlDoc = request.responseXML;
}

请帮帮我!!我真的很感激任何答案。

创建一个类似下面的函数,从服务器接收数据。

request.onreadystatechange = function(){
        if(request.readyState == 4){            
            console.log(request.responseText);
        }
    }

设置 responseType 有用吗?
在发送前调用 request.responseType = 'document';

请确保您从同一来源发出请求。这意味着如果您在站点 www.abc.com 中,那么您可以请求 www.abc.com/download/ 或 www.abc.com/site 等等。但是,如果您请求 www.gdb.com 那么它可能会失败,并在您的控制台中显示此错误 "No 'Access-Control-Allow-Origin' header is present on the requested resource." 出于安全原因,浏览器会阻止此 activity。它需要在同一个域中。

有时尝试使用 JQuery。它API非常好用,对做任务很有帮助。您需要先像这样将脚本添加到页面:

<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>

您可以下载脚本或使用实时版本并像上面那样link。

接下来你可以像这样调用来发出GET请求。成功时观察到它 returns data 。这使您的工作变得简单 ,但请记住您需要从同一域进行调用

$.ajax({
    type: "GET",
    url: "http://wwww.something.com"
})
    .done(function( data ) {
        alert(data);
    })
    .fail( function(xhr, textStatus, errorThrown) {
        alert(xhr.responseText);
    });

要了解有关跨站点 HTTP 请求的更多信息:CORS 这是一个线程,可以帮助您更好地理解:“No 'Access-Control-Allow-Origin'