我已经在我的服务器上运行了一个wsdll webservice。我在运行它时会在浏览器中获取xml响应。
现在我试图通过javascript获取该数据,但我的请求执行readyState 1然后4,当然女巫会给出一个空结果,但我似乎无法看到我的错误在哪里。
我尝试在--allow-file-access-from-files中运行Chrome,但没有帮助。
代码
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<script type="application/javascript">
function start(){
var c = loadXMLDocPost("http://picture.zaqsolutions.com/picture/picture.asmx/getMeetingPicture?MeetingID=46");
alert(c);
var t = c.getElementsByTagName('name')[0].childNodes[0].nodeValue;
}
function loadXMLDocPost(filename) {
var xhttp;
xhttp = new XMLHttpRequest();
xhttp.open("GET",filename,true);
xhttp.send();
return xhttp.responseXML;
}
</script>
<button id="test" onClick="start()">Test</button>
</body>
</html>
我很感激有任何想法的原因。
答案 0 :(得分:0)
您正在尝试在指示浏览器发送请求后立即读取HTTP响应。这是在答复到来之前。
您需要等待它(通过使用事件侦听器)然后读取数据。
var xhttp;
xhttp = new XMLHttpRequest();
xhttp.open("GET",filename,true);
xhttp.addEventListener("load", process_response);
xhttp.send();
function process_response() {
var data = this.responseXML;
alert(data);
}