如何使用JavaScript从Web服务URL获取响应

时间:2013-05-31 05:24:16

标签: javascript javascript-events xmlhttprequest

我是Java脚本新手。 我有http webservice URL导致xml respose。如何从URL获取响应xml。我尝试使用XMLHttpRequest使用followinf,但没有运气。

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,当我在控制台中评估响应时,它全部为空。

2 个答案:

答案 0 :(得分:0)

This link可能会为您解决问题...请参阅“处理响应值”部分

答案 1 :(得分:0)

根据这个:Ajax won't get past readyState 1, why?,您应该尝试通过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服务来检查Web服务,以确保问题来自您的身边