又一个关于ResponseText返回值的问题

FanKe000 2009-02-21 11:01:05

//生成Http请求对象,用于客户端向服务/端发送异步的http请求
function getHttpObject()
{
var xmlhttp;
var browser = navigator.appName;

if(browser == "Microsoft Internet Explorer")
{
//如果用户使用IE,就返回XMLHTTP的ActiveX对象
xmlhttp = new ActiveXObject("MSXML2.XMLHTTP.3.0");
}
else
{
//否则返回一个XMLHttpRequest对象
xmlhttp = new XMLHttpRequest();
}

return xmlhttp;
}

//获取全局的HTTP请求对象
var xmlhttp = getHttpObject();


//回调函数
function callback(){
// alert(xmlhttp.readyState);
//5接收响应数据
//判断对象的状态是交互完成
if(xmlhttp.readyState==4){
//判断http的交互是否成功、
if(xmlhttp.status==200||xmlhttp.status==0){
//获取服务器端返回的数据
//获取服务器端输出的纯文本数据
var responseText = xmlhttp.responseText;
var array = new Array();
array = responseText.split(",");
var id = array[0];
var num = array[1];
//将数据显示在页面上
alert(id+","+num);(这个地方获取的总是提交之前的值,输出不了返回的值)
alert("恭喜您投票成功!");
//设置元素节点中的html内容
document.getElementById(id).innerHTML=num;

//alert(responseText);

}else
{
alert("出错了");
}
}
}

function vote(id)
{
var url = "updatevote.aspx?id="+escape(id);
//指定服务端的地址
xmlhttp.open("GET", url, true);
//请求状态变化时的处理函数
xmlhttp.onreadystatechange = callback;
//发送请求
xmlhttp.send(null);
}



以下是服务端页面
单独测试传参给服务端是可以获取返回值的,
但是为什么就是在提交页面ResponseText出来的值不对呢?


/// <summary>
/// 更新投票数
/// </summary>
private void UpdateLinkVote()
{
Response.Expires = -1;
//int count =Convert.ToInt32(Request.QueryString["count"].ToString());
string id = Request.QueryString["id"].ToString();
string num = bll.UpdateLinkCarVote(int.Parse(id)).ToString();
string str = id + "," + num;
Response.Write(str);
Response.End();
}
...全文
731 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
FanKe000 2009-02-21
  • 打赏
  • 举报
回复
不用返回值的。我已经清空了UpdateLinkVote.aspx的页面上的所有东东。
所以Response.write出来的就是我想要的。而且已经在该页面传参做了测试。
晕!今天下午又好了。可能是因为数据库不在我本机上,网络问题吧!
程序应该是没有问题的。还是谢谢大家了!
skyaspnet 2009-02-21
  • 打赏
  • 举报
回复
不好意思,刚才没看清楚, 建议最好把这个函数放在ashx文件中,



///
/// 更新投票数
///
private string UpdateLinkVote()
{
Response.Expires = -1;
//int count =Convert.ToInt32(Request.QueryString["count"].ToString());
string id = Request.QueryString["id"].ToString();
string num = bll.UpdateLinkCarVote(int.Parse(id)).ToString();
string str = id + "," + num;
return str;
}




因为放在aspx页面里有时会产生多余的代码, 造成结果的不一致
skyaspnet 2009-02-21
  • 打赏
  • 举报
回复

///
/// 更新投票数
///
private void UpdateLinkVote()
{
Response.Expires = -1;
//int count =Convert.ToInt32(Request.QueryString["count"].ToString());
string id = Request.QueryString["id"].ToString();
string num = bll.UpdateLinkCarVote(int.Parse(id)).ToString();
string str = id + "," + num;
Response.Write(str);
Response.End();
}



改为


///
/// 更新投票数
///
private string UpdateLinkVote()
{
Response.Expires = -1;
//int count =Convert.ToInt32(Request.QueryString["count"].ToString());
string id = Request.QueryString["id"].ToString();
string num = bll.UpdateLinkCarVote(int.Parse(id)).ToString();
string str = id + "," + num;
Response.Write(str);
Response.End();
}



函数要有返回值才行的
skyaspnet 2009-02-21
  • 打赏
  • 举报
回复

///
/// 更新投票数
///
private void UpdateLinkVote()
{
Response.Expires = -1;
//int count =Convert.ToInt32(Request.QueryString["count"].ToString());
string id = Request.QueryString["id"].ToString();
string num = bll.UpdateLinkCarVote(int.Parse(id)).ToString();
string str = id + "," + num;
Response.Write(str);
Response.End();
}



改为:


///
/// 更新投票数
///
private string UpdateLinkVote()
{
Response.Expires = -1;
//int count =Convert.ToInt32(Request.QueryString["count"].ToString());
string id = Request.QueryString["id"].ToString();
string num = bll.UpdateLinkCarVote(int.Parse(id)).ToString();
string str = id + "," + num;
Response.Write(str);
Response.End();
}



要有返回值才行的
FanKe000 2009-02-21
  • 打赏
  • 举报
回复
是不是星期六大家都不上班啊?
怎么没人顶啊?
哎……

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧