【问题标题】:XMLHttpRequest error SCRIPT10XMLHttpRequest 错误 SCRIPT10
【发布时间】:2013-03-06 14:41:30
【问题描述】:

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

【问题讨论】:

  • 你在说什么……
  • 我的问题是:我有一个错误我认为这个错误会返回给我,因为我必须等待查询结果准备好@Sebas
  • XMLHttpRequests 也适用于非 IE 浏览器。
  • 是的,但我有一些 ActiveXObject @MarcelKorpel
  • 您的查询字符串(在您的情况下为xmlString)应使用encodeURIComponent 编码。它何时输出该错误消息?使用断点并单步执行您的代码,看看哪里出错了。

标签: javascript xml xmlhttprequest


【解决方案1】:

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

【讨论】:

  • 好的,但是如果我评论 open 方法并只留下它返回错误为什么?我只打开了方法我不明白为什么
  • @AlessandroMinoccheri:当getResponseText 结束时,您的req.responseText 仍然是null
  • 我尝试评论响应.. 当我调用打开方法@MarcelKorpel 时错误返回我
  • @AlessandroMinoccheri:然后设置断点并检查您传递给req.open 的值(urlStr 变量是否正确?)。
  • 是的,因为如果我将它复制到他们的演示测试页面中,它可以正常工作
猜你喜欢
  • 2016-06-18
  • 1970-01-01
  • 2012-02-10
  • 1970-01-01
  • 1970-01-01
  • 2022-01-07
  • 2017-07-19
相关资源
最近更新 更多