Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript xmlHttp每次返回null_Javascript_Xmlhttprequest - Fatal编程技术网

Javascript xmlHttp每次返回null

Javascript xmlHttp每次返回null,javascript,xmlhttprequest,Javascript,Xmlhttprequest,我有java脚本ajax代码,这些代码是: var xmlHttp = new GetXmlHttpObject(); function answer() { if(xmlHttp.readyState==4) { alert("response is given"); alert(xmlHttp.responseXML); document.getElementById("bl").innerHTML =xmlHttp.respons

我有java脚本ajax代码,这些代码是:

var xmlHttp = new GetXmlHttpObject();

function answer()
{

if(xmlHttp.readyState==4)
    {
        alert("response is given");
        alert(xmlHttp.responseXML);
        document.getElementById("bl").innerHTML =xmlHttp.responseText;
        randNum();
    }
else{
        document.getElementById("bl").innerHTML='<img src="so/loading.gif">';
    }
}

function sendCode()
{
var param="";
var sender_name = document.getElementById("sender_name").value;
var sender_emaile = document.getElementById("sender_emaile").value;
var subject = document.getElementById("subject").value;
var message = document.getElementById("message").value;
var security_code=document.feedback.security_code.value;
var security_code_id=document.feedback.security_code_id.value;
var responsibility = 123;

if(sender_name=="" || sender_emaile=="" || subject=="" || message=="" || security_code=="")
{ 

}else{
    param += "sender_name="+sender_name+"&sender_emaile="+sender_emaile+"&subject="+subject+"&message="+message+"&security_code="+security_code+"&responsibility="+responsibility+"&security_code_id="+security_code_id;
    xmlHttp.open("POST","http://www.acn.org/modules.php?name=Feedback&action=response",true);
    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", param.length);
    xmlHttp.setRequestHeader("Connection", "close");
    xmlHttp.onreadystatechange=answer;
    xmlHttp.send(param);
    }
}
var xmlHttp=new GetXmlHttpObject();
函数答案()
{
if(xmlHttp.readyState==4)
{
警报(“给出响应”);
警报(xmlHttp.responseXML);
document.getElementById(“bl”).innerHTML=xmlHttp.responseText;
randNum();
}
否则{
document.getElementById(“bl”).innerHTML='';
}
}
函数sendCode()
{
var param=“”;
var sender_name=document.getElementById(“sender_name”).value;
var sender_email=document.getElementById(“sender_email”).value;
var subject=document.getElementById(“subject”).value;
var message=document.getElementById(“message”).value;
var security_code=document.feedback.security_code.value;
var security\u code\u id=document.feedback.security\u code\u id.value;
var责任=123;
如果(发件人名称=“”| |发件人电子邮件=“”| |主题=“”| |邮件=“”| |安全代码=“”)
{ 
}否则{
参数+=“发件人姓名=”+发件人姓名+”&发件人电子邮件=“+发件人电子邮件+”&主题=“+主题+”&消息=“+消息+”&安全代码=”+安全代码+”&责任=“+责任+”&安全代码\u id=“+安全代码\u id”;
open(“POST”http://www.acn.org/modules.php?name=Feedback&action=response“,对);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
setRequestHeader(“内容长度”,参数长度);
setRequestHeader(“连接”,“关闭”);
onreadystatechange=answer;
xmlHttp.send(param);
}
}
但是我的问题是xmlHttp.responseXML返回Null,但是我可以在Wireshark(数据包嗅探器)中看到http响应。我甚至在手动输入URL时得到响应

我应该如何调试它

已编辑

Wireshark数据包包含很多我的服务器/客户端属性,但我可以说在超文本传输协议中,它包含两个部分和一个部分

第一部分是

HTTP/1.1 200正常\r\n

其中包含请求头,第二部分是

HTTP分块响应

也就是说内容编码实体体(gzip)

下一节也是最后一节是:

基于行的文本数据:text/html

其中包含我想要的响应,但它不能通过xmlHttp.responseXML或xmlHttp.responseText显示

<div> some text </div>
一些文本

问题可能是您使用的是全局
xmlhttp
对象

试一试

函数应答(xmlHttp)
{
if(xmlHttp.readyState==4)
{
警报(“给出响应”);
警报(xmlHttp.responseXML);
document.getElementById(“bl”).innerHTML=xmlHttp.responseText;
randNum();
}
否则{
document.getElementById(“bl”).innerHTML='';
}
}
函数sendCode()
{
var param=“”;
var sender_name=document.getElementById(“sender_name”).value;
var sender_email=document.getElementById(“sender_email”).value;
var subject=document.getElementById(“subject”).value;
var message=document.getElementById(“message”).value;
var security_code=document.feedback.security_code.value;
var security\u code\u id=document.feedback.security\u code\u id.value;
var责任=123;
如果(发件人名称=“”| |发件人电子邮件=“”| |主题=“”| |邮件=“”| |安全代码=“”)
{ 
}否则{
var xmlHttp=new GetXmlHttpObject();
参数+=“发件人姓名=”+发件人姓名+”&发件人电子邮件=“+发件人电子邮件+”&主题=“+主题+”&消息=“+消息+”&安全代码=”+安全代码+”&责任=“+责任+”&安全代码\u id=“+安全代码\u id”;
open(“POST”http://www.acn.org/modules.php?name=Feedback&action=response“,对);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
setRequestHeader(“内容长度”,参数长度);
setRequestHeader(“连接”,“关闭”);
xmlHttp.onreadystatechange=函数(){
答案(xmlHttp);
};
xmlHttp.send(param);
}
}

问题可能是您正在使用一个全局
xmlhttp
对象。难以置信的人仍然使用这种ajax编程方式。我已经有好几年没看到这个了。。。jQuery有什么问题?JSON?这不是我,这是PHPNuke:),我知道Jquery提供了一种灵活的方法。@Golix我会记住永远不要使用它,然后哈哈哈,我认为xml不应该再与javascript一起使用了,它只对javascript有用webservices@bicycle . 我并不是说这是最漂亮的,但知道如何在没有库的情况下做到这一点并不是坏事。@Golix是
responseText
返回值吗?您还可以使用
Wireshark
responseText返回nothing来共享找到的值,我认为它无法处理某种响应。我将添加Wireshark数据包。
function answer(xmlHttp)
{

    if(xmlHttp.readyState==4)
    {
        alert("response is given");
        alert(xmlHttp.responseXML);
        document.getElementById("bl").innerHTML =xmlHttp.responseText;
        randNum();
    }
    else{
        document.getElementById("bl").innerHTML='<img src="so/loading.gif">';
    }
}

function sendCode()
{
    var param="";
    var sender_name = document.getElementById("sender_name").value;
    var sender_emaile = document.getElementById("sender_emaile").value;
    var subject = document.getElementById("subject").value;
    var message = document.getElementById("message").value;
    var security_code=document.feedback.security_code.value;
    var security_code_id=document.feedback.security_code_id.value;
    var responsibility = 123;

    if(sender_name=="" || sender_emaile=="" || subject=="" || message=="" || security_code=="")
    { 

    }else{
        var xmlHttp = new GetXmlHttpObject();

        param += "sender_name="+sender_name+"&sender_emaile="+sender_emaile+"&subject="+subject+"&message="+message+"&security_code="+security_code+"&responsibility="+responsibility+"&security_code_id="+security_code_id;
        xmlHttp.open("POST","http://www.acn.org/modules.php?name=Feedback&action=response",true);
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("Content-length", param.length);
        xmlHttp.setRequestHeader("Connection", "close");
        xmlHttp.onreadystatechange=function(){
            answer(xmlHttp);
        };
        xmlHttp.send(param);
    }
}