asp xmlhttp responsetext返回值获取
我们总是会遇到这样的情况,需要将数值从一个网页传递到另一个网页。在这篇文章中,向你展示了几种从一个网页向另一个网页传递数值的几种方法。在此例子中,创建的网页由一个文本控件和几个按钮控件组成。在文本框中输入的数据通过被标识在按钮控件中的不同方法从一个网页传递到另一个网页。
Response.Redirect
让我们首先看一看如何使用Response.Redirect方法传递数据。这是它们之中最简单的方法。在文本框中输入一些数据,并且当你输入完成数据后,按下“Respose.Redirect”按钮。我们会得到一个提示,有时我们想在catch程序中传递另一个网页,意味着捕捉到例外程序并且向另一个网页传递。如果你试图这样做,它会给你一个System.Threading例外程序。因为你想遗留下一个线程向另一个网页传递数据,所以这个例外程序就会被抛出。
Response.Redirect(“WebForm5.aspx“,false);
这个语句告诉编译器定位到“WebForm5.aspx”,这里的“false”意味着在当前网页不能结束你正在做的事情。应该看一看线程发布命令的System.Threading类。在下面,看一看按钮事件的C#代码。 “txtName”文本控件的名字,文本框的内的值传递到一个叫做“WebForm5.aspx”的网页。在“?”之后的“Name”符号只是一个临时的响应变量,这个变量保持着文本的数值。
private void Button1_Click(object sender, System.EventArgs e)
{
// Value sent using HttpResponse
Response.Redirect(“WebForm5.aspx?Name=“+txtName.Text);
}
好的,到这种观点为止,你使用Response发送了数值。刚刚,在此我收集到了这些数值,所以在“WebForm5.aspx”page_Load事件中,写入这些代码。首先,我们检查到输入的值不为null。如果不是这样,我们只是简单地在网页上使用Label控件显示数值。注意:如果你使用Response.Redirect方法来传递这些数值,所有这些数值在浏览器的URL中都是不可见的。你绝不能使用Response.Redirect来传递信用证号码和机密信息。
if (Request.QueryString[“Name“]!= null)
Label3.Text = Request.QueryString[“Name“];
Cookies
接下来使用Cookies。Cookies在服务器端创建,但是客户端省略。在此 “Cookies” 按钮的click事件中,写入以下代码:
HttpCookie cName = new HttpCookie(“Name“);
cName.Value = txtName.Text;
Response.Cookies.Add(cName);
Response.Redirect(“WebForm5.aspx“);
首先,创建一个cookie命名为“cName”。既然一个cookie实例可以拥有许多数值,告诉编译器这个cookie持有“Name”数值。我们将它赋值给TextBox并且最结后将它加入Response流,再使用 Response.Redirect方法传递给其它网页。
让我们看一看如何得到被另一个网页传递的cookie数值。
if (Request.Cookies[“Name“] != null )
Label3.Text = Request.Cookies[“Name“].Value;
如你所看到的,象我们以前做一的一样正是使用同一种方法,刚刚我们在Request.QueryString之内,使用了Request.Cookies。记注一些浏览器不接收cookies。
Session Variables
接下来我们看一看session变量,这些变量由服务器来处理。第一个响影一从客户端传递到服务器,Sessions就创建了,并且当用户关闭浏览器窗口或者一些异常操作发生,session就会结束。给你一些可以使用session变量来传递数值的方法。在下面你看到为用户创建的Session和 “Name”是关键字,也如知名的Session关键字一样,关键字被赋给TextBox数值。
// Session Created
Session[“Name“] = txtName.Text;
Response.Redirect(“WebForm5.aspx“);
// The code below shows how to get the session value.
// This code must be placed in other page.
if(Session[“Name“] != null)
Label3.Text = Session[“Name“].ToString();
Application Variables
有时,我们需要存取来自网页任何地方的数值。因为那样,可以使用Application变量。这里有一小段代码,这段代码显示如何做到那些事情。一旦创建Application变量并且为其赋值,在应用程序的任何地方都可以重新得到它的值。
// This sets the value of the Application Variable
Application[“Name“] = txtName.Text;
Response.Redirect(“WebForm5.aspx“);
// This is how we retrieve the value of the Application Variable
if( Application[“Name“] != null )
Label3.Text = Application[“Name“].ToString();
HttpContext
可以使用HttpContext从网页中重新得到数值。通过使用方法的属性获得那些数值。既然它们易于编写代码和修改,使用属性是一种好方法。在你的第一个网页中,制造一个属性,这个属性可以返回TextBox的值。
public string GetName
{
get { return txtName.Text; }
}
我们使用Server.Transfer来将此控件发送到一个新网页。注意: Server.Transfer仅仅将此控件传递到新的网页并且不重新定位该网页,这意味着你会看到在URL中旧网页的地址。简单地在 “Server.Transfer”按钮单击事件,并且增加下列代码。
Server.Transfer(“WebForm5.aspx“);
现在,让我们定位网页,数值就传递到该网页上,在这种情况下使用的该网页是“webForm5.aspx”。
// You can declare this Globally or in any event you like
WebForm4 w;
// Gets the Page.Context which is Associated with this page
w = (WebForm4)Context.Handler;
// Assign the Label control with the property “GetName“ which returns string
Label3.Text = w.GetName;
Special Note
特别注意与你看到的一样,从一个网页向别一网页传递数值时有不同的方法。每一个方法有它自己的优点也有其缺点。所以,当你传递数值时,选择好你所需要的所以你就会有一种好方法,这种方法对你是最为可行的
为什么response.responseText没有返回值
可能你的后台多了个回车
把最后一行的%》提到上一行去,确保%》后面没有其他东西
response.getWriter().print(rand);%》
Ajax返回的responseText怎么可以用来判断
恩.楼下说得很对.可以用alert(XMLHttpReq.responseText)
同时你也可以只返回一个OK来表示用户名存在.记住不要有多余的东西出现…
问题可能不出来这里的空格上。一般情况下我是不会用汉字来标志成功的。因为汉字有的时候可能会出错。你可以先输出responseText看一下是什么就知道啦。。。
ajax中xmlHttpRequest.responseText返回值问题
/********xmlHttpRequest对象返回值**********
onabort: null
onerror: null
onload: null
onloadend: null
onloadstart: null
onprogress: null
onreadystatechange: null
ontimeout: null
readyState: 4
response: “{“code“:1,“message“:““}“
responseText: “{“code“:1,“message“:““}“
responseType: ““
responseURL: “
怎样取得xmlHttp.responseText的返回值
var myXmlHttp=createXMLHTTP();
function createXMLDom()
{
var ActiveX = new Array(“MSXML2.DOMDocument.5.0“,“MSXML2.DOMDocument.4.0“,“MSXML2.DOMDocument.3.0“,“MSXML2.DOMDocument“,“Microsoft.XMLDOM“,“MSXML.DOMDocument“);
for(var i=0;i《ActiveX.length;i++)
{
try
{
return new ActiveXObject(ActiveX[i]);
}
catch(e)
{
return document.implementation.createDocument(““, ““, null);
}
}
return null;
}
///////////通用Ajax查询代码段,采用异步请求方式///////////////
//key为检测的数据内容;path为路径;str1为表名;str2为列名;iFlag为标志变量,决定调用哪个函数;
function ajaxQuery(key,path,str1,str2,iFlag)
{
var domPost;
domPost=“《root》《word》“+key+“《/word》《name》“+str1+“《/name》《list》“+str2+“《/list》《/root》“;
myXmlHttp.open(“POST“,“../system/“+path+“/default.asp“,true);
myXmlHttp.setRequestHeader(“Content-type“,“application/x-www-form-urlencoded“);
//根据iFlag标志变量的值,
switch(iFlag)
{
//检查reg/用户名是否存在
case 0:
myXmlHttp.onreadystatechange=afterChkUser;
break;
}
myXmlHttp.send(domPost);
//tResult=myXmlHttp.responseText;
//return analysisXmlDom(tResult,“result“);
}
function afterChkUser()
{
if(myXmlHttp.readyState《4)
{
document.getElementById(“nameTips“).className=“msgLoading“; ///////////显示装入图片//////////
document.getElementById(“nameTips“).innerHTML=msgInfo;
}
if(myXmlHttp.readyState==4)
{
var tResult=myXmlHttp.responseText;
tResult= analysisXmlDom(tResult,“result“);
if(tResult==“0“) /////已经存在
{
var tUserID=document.getElementById(“tUserName“).value.replace(/(^[\s]*)|([/s]*$)/g,““);
document.getElementById(“nameTips“).className=“msgErrorL“;
document.getElementById(“nameTips“).innerHTML=msgInfo+ “《a href=’../login/?t=“+tUserID+ “’》 登录《/a》“;
document.getElementById(“tUserName“).style.borderColor=colError;
bolFlag=1;
}
else
{
document.getElementById(“nameTips“).className=“msgRight“;
document.getElementById(“nameTips“).innerHTML=““;
document.getElementById(“msgExtend“).style.display=“none“;
document.getElementById(“tUserName“).style.borderColor=colFocus;
bolFlag=2;
}
}
}
function analysisXmlDom(domString,domKey)
{
var myDom,rValue;
myDom=createXMLDom();
if(window.ActiveXObject)
{
myDom.loadXML(domString);
rValue=myDom.selectSingleNode(“//“+domKey).text;
}
else
{
var myParser=new DOMParser();
myDom=myParser.parseFromString(domString,“text/xml“);
rValue=myDom.documentElement.childNodes.firstChild.nodeValue;
}
return rValue;
}
function createXMLHTTP()
{
var xmlHTTP=null;
try
{
xmlHTTP=new ActiveXObject(“Microsoft.XMLHTTP“);
}
catch(e)
{//Firefox,Opera,Safari
xmlHTTP=new XMLHttpRequest();
}
return xmlHTTP;
}
后台:
《%
ON ERROR RESUME NEXT
dim myDomBack ’声明传回前台的DOM
dim myDom,sFlag
SET myDomBack=CreateObject(“MSXML2.DOMDOCUMENT“)
SET myDom=CreateObject(“MSXML2.DOMDOCUMENT“)
myDOM.Load Request
myDOMBack.loadxml “《root》《result》《/result》《/root》“
’查询数据库
dim tKeyword,tSheet,tHeader
tKeyword=myDOM.selectSingleNode(“//word“).text
tSheet=myDOM.selectSingleNode(“//name“).text
tHeader=myDOM.selectSingleNode(“//list“).text
If Err.Number《》0 then
Response.Redirect “http://localhost/“
Response.End
End if
mySQL=“SELECT “ & tHeader & “ From “ & tSheet & “ WHERE “ & tHeader & “=’“ & tKeyword &“’“
set myRs=myConn.Execute(mySQL)
If Not myRs.EOF Then
sFlag=“0“ ’查询已存在
Else
sFlag=“1“
End If
myDOMBack.selectSingleNode(“//result“).text=sFlag
myDOMBack.save Response
SET myRs=Nothing
SET myConn=Nothing
SET myDomBack=Nothing
SET myDom=Nothing
%》
如何知道xmlhttp的responsetext返回值是什么
1、responseText返回的数据,是你读取的那个文件对应的文本字符串
2、你的问题不是不知道responseText是什么,而是不知道怎么将 responseText 里面带的数据读出来,所以你需要一种数据读取得一种方法
我建议你用XML格式适用 xmlHttp,因为xml处理格式化的文数据比较好。下面是我的建议:
1、确定你的数据格式。也就是你用xmlHttp返回数据的格式比如这样
《Data》
《UserName》UserName《/UserName》
《PassWord》PassWord《/PassWord》
《/Data》
你可以用asp、jsp输出这个格式,注意输出是的编码方式,比如用gb2312输出
2、从客户端读取数据
var xmlhttp = new activexobject(“microsoft.xmlhttp“);
xmlhttp.open(“post“,“server.php“,false); // 使用asp时用server.asp
xmlhttp.setrequestheader(“contrn-type“,“text/xml“);
xmlhttp.setrequestheader(“contrn-charset“,“gb2312“);
xmlhttp.send(tree(canvas.documentelement));
(上面的代码是从前面的老兄哪里复制过来的,呵呵)
3、读取数据中的参数
var xmlDoc = xmlhttp.responseXML
var userName = xmlDoc.selectSingleNode(“Data/UserName“).text
var PassWord = xmlDoc.selectSingleNode(“Data/UserName“).text
4、最后就是使用这些取道的变量了
不知道这样回答,你能接受吗?
为什么WinHttp的ResponseText属性返回乱码
在servlet中设置:response.setCharsetEncoding(“UTF-8“)或者是GBK试试,还有你的JSP页面是不是UTF-8格式,又或者是你的浏览器的编码设置了其他的编码格式,
如何获取ajax 的responsetext的返回值
$.ajax({
type: “POST“,
url: “abc.ashx“,
data: {“str“: strText },
dataType: “json“,
async: false,
success: function(responseText) {
responseText; //这就是返回的responseText
},
error: function (e) {
return;
}
});
ajax中的xmlhttp.responseText对象是什么意思他的返回值是1或者0吗在什么情况下是0,什么情况下是1.
responseText 返回的值不是1和0,而是获得字符串形式的响应数据
responseText 不是对象,是XMLHttpRequest对象的属性
比如向php文件发送请求后
传回来的数据可以给你用定义xmlhttp这个名字的XMLHttpRequest对象接收
你可以这样再发送给需要显示的地方:
document.getElementById(“需要显示的元素id“).innerHTML=xmlhttp.responseText;
如果是XML文件 就使用responseXML属性
document.getElementById(“需要显示的元素id“).innerHTML=xmlhttp.responseXML;
希望能帮助你 :)
responseText responseBody responseXml什么区别
ResponseText 返回数据为字符性文本数据,数据源为任何文本性数据。
ResponseXML 返回数据为DOM对象,可以用JS通过DOM进行加工控制的,单源数据必须是XML。
ResponseBody 返回的是二进制数据,可以通过Adodb.Stream进行加工控制,数据源可以为任何数据。