XMLHttpRequest接收未定义

时间:2015-01-01 16:00:19

标签: javascript

我正在iphone上创建一个小部件,但我无法从网址获取数据。 在IE上,我可以获取数据。但是,在chrome和iphone上我无法获取数据,但它只显示未定义而不是数据。

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

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

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

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

请确保您使用相同的来源提出请求。这意味着如果您在www.abc.com网站,那么您可以请求www.abc.com/download/或www.abc.com/site等。但是,如果您请求www.gdb.com,那么它可能会在您的控制台中出现此错误“请求的资源上没有”Access-Control-Allow-Origin“标题。”浏览器出于安全原因阻止此活动。它需要位于同一个域中。

有时尝试使用JQuery。它的API非常易于使用,对执行任务非常有帮助。您需要首先将脚本添加到页面中,如下所示:

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

您可以下载脚本或使用实时版本并链接到上面。

接下来,您可以拨打这样的电话来发出GET请求。观察者在成功时返回数据。这使您的工作变得轻松但请记住您需要从同一个域拨打电话

$.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'

答案 2 :(得分:-1)

会设置responseType吗? 发送前请致电request.responseType = 'document';