回 帖 发 新 帖 刷新版面

主题:xmlhttp 的setRequestHeader报错提示是未指定的错误。

xmlhttp 的setRequestHeader报错提示是未指定的错误。
代码如下:
<html>
<head><title>显示框架</title>
</head>
<body >
<form name="myform" id="myform" action="getcustomerdata.asp" method="post" target="hiddenframe" >
<input type="text" name="name1" id="name1" />
<input type="text" name="sex" id="sex"  />
<input type="button" name="tijiao" id="tijiao" value="提交" onClick="sendrequest();return false;" />
</form>
<script language="javascript">
function checkiframe(ofrom){
  var aparams=new Array();  //创建一个数组
  for(var i=0;i<ofrom.elements.length;i++){
    var sparam=encodeURIComponent(ofrom.elements[i].name);  //取得表单元素名
    sparam+="=";     //名与值之间用"="号连接
    sparam+=encodeURIComponent(ofrom.elements[i].value);   //获得表单元素值
    aparams.push(sparam);   //push是把新元素添加到数组中去
  }
  return aparams.join("&");  //那数组中的值连接起来 并用"&"连接起来
}
function sendrequest(){
  var omysfrom=document.forms[0];
  var sbody=checkiframe(omysfrom);  //就是表单的名和值组成的字符串
  var oxmlhttp=new ActiveXObject("microsoft.XmlHttp");
  oxmlhttp.open("POST","getcustomerdata.asp",true);
  oxmlhttp.send(sbody);   //sbody就是主体了,get是传一个null值过去
  oxmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")    
  oxmlhttp.onreadystatechange=function(){
    if(oxmlhttp.readystate==4){
      if(oxmlhttp.status==200){
        alert(oxmlhttp.responseText);
      }
      else{
        alert(oxmlhttp.statusText);
      }
    }
  };
}
</script>
</body>
</html>


就是这句报错。  oxmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")    
 但要是不加这句post上传后台就用from得不到值了。
因该怎么解决这个错误呢。

回复列表 (共5个回复)

沙发

oxmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
注意大小写

板凳

把你的复制上去,还是没用啊。还是提示未知错误 这是怎么回事啊。
谁给段正确的代码片断。。。。

3 楼

01.htm
简化成这样 :
<html>
<head><title>显示框架</title>
</head>
<body >
<form name="myform" id="myform" action="getcustomerdata.asp" method="post" target="hiddenframe" >
<input type="text" name="name1" id="name1" />
<input type="text" name="sex" id="sex"  />
<input type="button" name="tijiao" id="tijiao" value="提交" onClick="sendrequest();return false;" />
</form>
<script language="javascript">
function sendrequest(){
  var oxmlhttp=new ActiveXObject("microsoft.XmlHttp");
  oxmlhttp.open("POST","getcustomerdata.asp",false);
  oxmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');  
  oxmlhttp.send(name1=424444);
  alert(oxmlhttp.responseText);
}
</script>
</body>
</html>
getcustomerdata.asp简化成这样:
<%
response.contenttype="text/plain"
response.write request.form("name1")

%>
但是还是返回一个空值,这是怎么回事啊。

4 楼

oxmlhttp.send(name1=424444);错了改成oxmlhttp.send('name1=424444');就OK了,
但为什么上面的问题会有那样的错误。
这里的oxmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');  
一样的。为什么一个成功,一个报错呢。

5 楼

<html>
<head><title>显示框架</title>
</head>
<body >
<form name="myform" id="myform" action="getcustomerdata.asp" method="post" target="hiddenframe" >
<input type="text" name="name1" id="name1" />
<input type="text" name="sex" id="sex"  />
<input type="button" name="tijiao" id="tijiao" value="提交" onClick="sendrequest();return false;" />
</form>
<script language="javascript">
function $(id){
  return document.getElementById(id);
}
function checkiframe(ofrom){
  var aparams=new Array();  //创建一个数组
  for(var i=0;i<ofrom.elements.length;i++){
    var sparam=encodeURIComponent(ofrom.elements[i].name);  //取得表单元素名
    sparam+="=";     //名与值之间用"="号连接
    sparam+=encodeURIComponent(ofrom.elements[i].value);   //获得表单元素值
    aparams.push(sparam);   //push是把新元素添加到数组中去
  }
  return aparams.join("&");  //那数组中的值连接起来 并用"&"连接起来
}

function sendrequest(){
  var gg=document.forms[0];
  var getvalue=checkiframe(gg);
  var oxmlhttp=new ActiveXObject("microsoft.XmlHttp");
  oxmlhttp.open("POST","getcustomerdata.asp",false);
  oxmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');  
  oxmlhttp.send(getvalue);  //这个值因该是个字符串,所以直接传的时候加引号引用
  alert(oxmlhttp.responseText);
}
</script>
</body>
</html>
靠 又可以用了。搞不清楚什么状况。
哎。。。。。。

我来回复

您尚未登录,请登录后再回复。点此登录或注册