Javascript XMLHttprequest从WSDLL webservice返回空

时间:2017-08-04 09:23:25

标签: javascript xmlhttprequest

我已经在我的服务器上运行了一个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>

我很感激有任何想法的原因。

1 个答案:

答案 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);
}