关于xmlhttp的问题

xmlhttp经常使用,但是对它并不了解,下面是前天遇到的一个问题的代码(我传递的参数中含有中文),问题是Content-Type设为application/x-www-form-urlencoded后,xmlhttp返回500的错误,注释掉后就正常了,但还是没搞清楚原因,在网上查了下是这样说的:
在用XmlHttp向服务端提交数据时,对requestHeader的Content-Type通常有两种设置方式,一种是设为:application/x-www-form-urlencoded,另一种方式是不设置,缺省为不使用 application/x-www-form-urlencoded的方式,使用application/x-www-form-urlencoded方式时传递的信息是以name=value的方式传递到服务端的,在服务端可以用request.getParameter()取到值,不使用application/x-www-form-urlencoded方式时,在服务端可以用request.getInputStream()取得数据。无论以哪种方式,客户端的数据都是以UTF-8的格式编码后传递给服务器的。
但搞不明白为什么会返回500的错误(如果参数中没有汉字也能正常运行),哪位大哥给指点迷津?这个属性的设置对发送有什么影响?先谢过了! ^_^

None.gif            function ChangeRight(typeid)
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif{
InBlock.gif                
var vDeptID = GetDeptID();
InBlock.gif                
if(vDeptID == "")
InBlock.gif                    
return;
InBlock.gif                
if(GetRightInfo(typeid,vDeptID) == "wrong")
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    alert(
"该部门可能没有建立日程分类,请与系统管理员联系!");
InBlock.gif                    
return;
ExpandedSubBlockEnd.gif                }
    
InBlock.gif                
var LuRuRenBiaoShi="";
InBlock.gif                
//var strURL = "/CNNC/LingDaoRiCheng/PlanAdmin/cmdPlan.aspx";
InBlock.gif
                //var strXml = "";
InBlock.gif
                //strXml += "<result>";
InBlock.gif
                //strXml += "<action>getUserList</action>";
InBlock.gif
                ////strXml += "<typeid>" + typeid + "</typeid>";
InBlock.gif
                //strXml += "<deptid>" + vDeptID + "</deptid>";
InBlock.gif
                //strXml += "</result>";
InBlock.gif
                //LuRuRenBiaoShi = Execute(strURL, "POST", strXml);//取得已授权的用户列表
InBlock.gif
                //alert(LuRuRenBiaoShi);
InBlock.gif
                var arrPersonInfo;
InBlock.gif                LuRuRenBiaoShi 
= openDialog("/SysModule/Mail/addPerson.aspx?oValue="+escape(LuRuRenBiaoShi),600,600,"" ,"");
InBlock.gif                
var person,personName ;
InBlock.gif                arrPersonInfo 
= LuRuRenBiaoShi.split('$');
InBlock.gif                person 
= "";
InBlock.gif                personName 
="";
InBlock.gif                
for (var i=0;i<arrPersonInfo.length-1;i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    
var strTemp=(arrPersonInfo[i].split("&"))[0];
InBlock.gif                    person 
+= strTemp + ",";
InBlock.gif                    personName 
+= (arrPersonInfo[i].split("&"))[1+ ",";
ExpandedSubBlockEnd.gif                }

InBlock.gif                strXml 
= "";
InBlock.gif                strXml 
+= "<result>";
InBlock.gif                strXml 
+= "<action>changeright</action>";
InBlock.gif                strXml 
+= "<typeid>" + typeid + "</typeid>";
InBlock.gif                strXml 
+= "<deptid>" + vDeptID + "</deptid>";
InBlock.gif                strXml 
+= "<userlist>" + person + "</userlist>";
InBlock.gif                strXml 
+= "<userName>" + personName + "</userName>";
InBlock.gif                strXml 
+= "</result>";
InBlock.gif                
//alert(escape(strXml));
InBlock.gif
                var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
InBlock.gif                xmlhttp.Open(
"POST", strURL, false);
InBlock.gif                
//xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
InBlock.gif
                //加上此行返回500的错误,注释掉后就正常了
InBlock.gif
                xmlhttp.Send(strXml);
InBlock.gif                
if (xmlhttp.status == 200)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    alert(
"操作成功!");
InBlock.gif                    window.location.href 
= window.location.href;
ExpandedSubBlockEnd.gif                }

InBlock.gif                
else
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    alert(xmlhttp.status);
InBlock.gif                    strResult 
= -1;
ExpandedSubBlockEnd.gif                }

ExpandedBlockEnd.gif            }

为了图省事,拼成xml格式的字符串send,后来改为用XMLDocument  xmldoc 进行封装,xmlHttp.send(xmldoc)发送就没什么问题了。

转载于:https://www.cnblogs.com/mapk/archive/2007/06/10/778557.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值