我是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,当我在控制台中评估响应时,它全部为空。
答案 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服务,以确保问题来自您的身边