0

我是 Javascripting 的新手。我有导致 xml respose 的 http webservice URL。如何从 URL 获取响应 xml。我尝试使用 XMLHttpRequest 使用以下内容,但没有运气。

function send_with_ajax( the_url ){
    var httpRequest = new XMLHttpRequest();
    //httpRequest.onreadystatechange = function() { alertContents(httpRequest); };  
    httpRequest.open("GET", the_url, true);
    httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    httpRequest.setRequestHeader("X-Requested-With", "XMLHttpRequest");
    httpRequest.setRequestHeader("X-Alt-Referer", "http://www.google.com");
    httpRequest.send();
    httpRequest.onreadystatechange = function() { 
        if (httpRequest.readyState == 4)
        {
            var _tempRecommendations = httpRequest.responseXML;
            window.alert(httpRequest.response)
            window.alert(httpRequest.responseText)
            window.alert(_tempRecommendations)
        }
    };  
};

我总是得到httpRequest.readyState = 1,而且当我在控制台中评估响应时它全部为空。

4

1 回答 1

0

据此:Ajax 不会通过 readyState 1,为什么?,您应该尝试用 onload 事件替换您的 onreadystatechange 事件:

httpRequest.onload= function() { 
        if (httpRequest.readyState == 4)
        {
            var _tempRecommendations = httpRequest.responseXML;
            window.alert(httpRequest.response)
            window.alert(httpRequest.responseText)
            window.alert(_tempRecommendations)
        }
    };  

如果它不起作用,请尝试简化您的代码,从一个非常基本的请求开始,如下所示:例如http://www.w3schools.com/xml/xml_parser.asp 。然后开始添加请求头,看看哪些指令会破坏你的程序。您也可以通过在浏览器中直接调用来检查 Web 服务,以确保问题出在您身边

于 2013-05-31T05:38:03.190 回答