日期:2014-05-16  浏览次数:20719 次

responseText的返回值,为什么带源代码了?
本帖最后由 xilaianzxsc 于 2013-10-15 15:54:56 编辑
login.asp中:

function login_onblur()
{
var yhid=document.getElementById("yhid").value;
var url="cheshi.asp?usercode="+yhid;
request.open("GET",url,true);
request.onreadystatechange=updatepage;
request.send(null);
}

function updatepage()
{
if (request.readyState == 4 && request.status==200)
{
var response=request.responseText;
document.getElementById("gysname").value = response; //返回的是带源码的,这是为什么呢? 比如:我测试时,返回的结果如下:  <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />湖州***公司(后面还加上许多空串,足有10多个)                        
}


cheshi.asp中如下:

<%
sql = "select A.User_code,A.User_name,A.User_PSD,CONVERT(varchar(100), P.Begin_date, 23) as Begin_date, CONVERT(varchar(100), P.END_date, 23) as END_date,Q.vendorCode,Q.cvenname FROM vendor_username A LEFT JOIN vendor_JiaoFei P ON A.vendorid=P.vendorid LEFT JOIN ba_vendor_all Q ON A.vendorid=Q.vendorid where A.if_active=1  and getDATE()>=P.Begin_date and getDATE()<=P.END_date and A.User_Code='" + Request.Querystring("usercode") + "'"

conn = Server.CreateObject("ADODB.Connection")
rs = Server.CreateObject("ADODB.Recordset")
conn.ConnectionString = ........此处先省略
conn.Open()  //连接数据库

rs.ActiveConnection = conn
rs.CursorType = 1 //设置游标类型
rs.LockType = 1 //设置锁定状态
rs.Open(sql) // 打开记录集. 


Response.Write(rs("cvenname"));
Response.End;


%>


------解决方案--------------------
删除cheshi.asp中所有非<%%>代码块外的所有html,这些会一起发送到客户端的,你调用repsonse.end只是结束这个语句块下面的内容输出,之前的输出会一起发送到客户端

要不就调用response.clear清空之前的输出,还有vbscript的语句结束不用分号

Response.Clear()
Response.Write(rs("cvenname"))
Response.End

------解决方案--------------------
Response.Charset="gb2312"