0

大家好,我必须连接到外部服务器才能检索数据。他们告诉我使用他们的脚本,我必须修改一些东西,因为它是错误的。现在,当我尝试午餐我的要求时,我遇到了一个问题。将错误返回到我的 Internet Explorer 控制台

SCRIPT10:完成此操作所需的数据尚不可用。

这是我的 javascript 页面,我认为问题是因为查询没有及时完成以打印我的结果。当它们准备好并且不返回错误时,如何打印结果? 我试图评论我的所有请求,只留下“打开”方法,但错误每次都会返回我。为什么??

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript">
var req = null ;
function sendRequest(){
    var urlStr="www.test.it";
    var xmlString="";
    xmlString+="<?xml version='1.0' encoding='UTF-8'?><some xml>";

    createHTTPRequestObject();
    var resp = getResponseText(urlStr+"?"+xmlString,null);

    var xmlDoc;
    xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
    xmlDoc.async = false;

    xmlDoc.loadXML(resp);
    alert(xmlDoc.xml);
}

function createHTTPRequestObject(){
    req=null ;
    var pXmlreq = false ;
    if (window.XMLHttpRequest) {
        pXmlreq = new XMLHttpRequest();
    } 
    else if (window.ActiveXObject) {
        try{
            pXmlreq = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e1) {
            try{
                pXmlreq = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch (e2) {
            }
        }
    }
    req = pXmlreq ;
}

function getResponseText(action,query,method,async,contenttype){
    if(method==null){
        method="POST";
    }
    if(async==null){
        async="true";
    }
    if(contenttype==null){
        contenttype = "application/x-www-form-urlencoded";
    }
    req.open(method,action, async);
    req.setRequestHeader("Content-Type", contenttype);
    if(query){
        req.send(query);
    }else{
        req.send();
    }
    return req.responseText ;
}
</script>
</head>
<body>
<input type="button" name="Request" value="Request" onclick="sendRequest();"/>
<div id="content" />
</body>
</html>
4

1 回答 1

2

您正试图在 responseText 准备好之前读取它。看起来您将异步调用视为同步。那将是问题所在。

于 2013-03-06T14:55:06.207 回答