初学ajax ,最原始的实现异步提交,但是readyState一直等于1
时间:2011-12-02
来源:互联网
JScript code
JScript code
JScript code
servlet返回一个字符串 在request.responseText能alert出来。
但是readyState一直是1 为什么啊
还有如果用struts的话 execute方法没有参数 ,怎么给后台传递数据啊
var request = false; try { request = new XMLHttpRequest(); } catch (trymicrosoft) { try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (othermicrosoft) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed) { request = false; } } }
JScript code
function doSubmitFunc() { var url = "/struts/RegFacade"; // 通过GET方式打开连接 request.open("GET", url, true); request.onreadystatechange = updatePage; request.send(null); alert(request.readyState); alert(request.responseText); var textBox = document.getElementById("id"); textBox.value = request.responseText; request.onreadystatechange = updatePage; }
JScript code
// 返回数据的处理函数 function updatePage() { if (ajax.readyState == 4 && ajax.status == 200) { alert(request.responseText); alert("Server is done!"); } else if (request.status == 404) { alert("Request URL does not exist"); } else { alert("Error: status code is " + request.status); } }
servlet返回一个字符串 在request.responseText能alert出来。
但是readyState一直是1 为什么啊
还有如果用struts的话 execute方法没有参数 ,怎么给后台传递数据啊
作者: orxtiger 发布时间: 2011-12-02
function doSubmitFunc() {
var url = "/struts/RegFacade";
// 通过GET方式打开连接
request.open("GET", url, true);
request.onreadystatechange = updatePage;
request.send(null);
alert(request.readyState);
alert(request.responseText);//把红色删除试试,看看alert(request.responseText);是否弹出你想要的信息!
var textBox = document.getElementById("id");
textBox.value = request.responseText;
request.onreadystatechange = updatePage;
}
var url = "/struts/RegFacade";
// 通过GET方式打开连接
request.open("GET", url, true);
request.onreadystatechange = updatePage;
request.send(null);
alert(request.readyState);
alert(request.responseText);//把红色删除试试,看看alert(request.responseText);是否弹出你想要的信息!
var textBox = document.getElementById("id");
textBox.value = request.responseText;
request.onreadystatechange = updatePage;
}
作者: DemoChen 发布时间: 2011-12-02
lz提到了返回值,可以把返回值得的几种状态给lz说一下:
readyState有五种可能的值:
0 (未初始化): (XMLHttpRequest)对象已经创建,但还没有调用open()方法。
1 (载入):已经调用open() 方法,但尚未发送请求。
2 (载入完成): 请求已经发送完成。
3 (交互):可以接收到部分响应数据。
4 (完成):已经接收到了全部数据,并且连接已经关闭。
readyState 状态 状态说明
(0)未初始化
此阶段确认XMLHttpRequest对象是否创建,并为调用open()方法进行未初始化作好准备。值为0表示对象已经存在,否则浏览器会报错--对象不存在。
(1)载入
此阶段对XMLHttpRequest对象进行初始化,即调用open()方法,根据参数(method,url,true)完成对象状态的设置。并调用send()方法开始向服务端发送请求。值为1表示正在向服务端发送请求。
(2)载入完成
此阶段接收服务器端的响应数据。但获得的还只是服务端响应的原始数据,并不能直接在客户端使用。值为2表示已经接收完全部响应数据。并为下一阶段对数据解析作好准备。
(3)交互
此阶段解析接收到的服务器端响应数据。即根据服务器端响应头部返回的MIME类型把数据转换成能通过responseBody、responseText或responseXML属性存取的格式,为在客户端调用作好准备。状态3表示正在解析数据。
(4)完成
此阶段确认全部数据都已经解析为客户端可用的格式,解析已经完成。值为4表示数据解析完毕,可以通过XMLHttpRequest对象的相应属性取得数据。
概而括之,整个XMLHttpRequest对象的生命周期应该包含如下阶段:
创建-初始化请求-发送请求-接收数据-解析数据-完成
readyState有五种可能的值:
0 (未初始化): (XMLHttpRequest)对象已经创建,但还没有调用open()方法。
1 (载入):已经调用open() 方法,但尚未发送请求。
2 (载入完成): 请求已经发送完成。
3 (交互):可以接收到部分响应数据。
4 (完成):已经接收到了全部数据,并且连接已经关闭。
readyState 状态 状态说明
(0)未初始化
此阶段确认XMLHttpRequest对象是否创建,并为调用open()方法进行未初始化作好准备。值为0表示对象已经存在,否则浏览器会报错--对象不存在。
(1)载入
此阶段对XMLHttpRequest对象进行初始化,即调用open()方法,根据参数(method,url,true)完成对象状态的设置。并调用send()方法开始向服务端发送请求。值为1表示正在向服务端发送请求。
(2)载入完成
此阶段接收服务器端的响应数据。但获得的还只是服务端响应的原始数据,并不能直接在客户端使用。值为2表示已经接收完全部响应数据。并为下一阶段对数据解析作好准备。
(3)交互
此阶段解析接收到的服务器端响应数据。即根据服务器端响应头部返回的MIME类型把数据转换成能通过responseBody、responseText或responseXML属性存取的格式,为在客户端调用作好准备。状态3表示正在解析数据。
(4)完成
此阶段确认全部数据都已经解析为客户端可用的格式,解析已经完成。值为4表示数据解析完毕,可以通过XMLHttpRequest对象的相应属性取得数据。
概而括之,整个XMLHttpRequest对象的生命周期应该包含如下阶段:
创建-初始化请求-发送请求-接收数据-解析数据-完成
作者: MuBeiBei 发布时间: 2011-12-02
//js
var xmlHttp;
//创建对象
function createXmlHttp() {
//根据window.XMLHttpRequest对象是否存在使用不同的创建方式
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest(); //FireFox、Opera等浏览器支持的创建方式
} else {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//IE浏览器支持的创建方式
}
return xmlHttp;
}
//发送请求
function b(){
createXmlHttp(); //创建XmlHttpRequest对象
xmlHttp.onreadystatechange =signCallBackPackSend_bufa; //设置回调函数
xmlHttp.open("GET", "/setup/transconf/transConfAction.do?method=check&startDate=2011-11-11&endDate=2012-12-12", true);
xmlHttp.send(null);
}
//回调函数
function signCallBackPackSend_bufa() {
if (xmlHttp.readyState == 4) {
var value = xmlHttp.responseText; //获取返回字符串
alert(value);
}
}
//action 返回传入的参数 startDate ; endDate
public ActionForward check(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String startDate=request.getParameter("startDate");
String endDate=request.getParameter("endDate");
try {
PrintWriter out = response.getWriter();
out.print(startDate+";"+endDate);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
var xmlHttp;
//创建对象
function createXmlHttp() {
//根据window.XMLHttpRequest对象是否存在使用不同的创建方式
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest(); //FireFox、Opera等浏览器支持的创建方式
} else {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");//IE浏览器支持的创建方式
}
return xmlHttp;
}
//发送请求
function b(){
createXmlHttp(); //创建XmlHttpRequest对象
xmlHttp.onreadystatechange =signCallBackPackSend_bufa; //设置回调函数
xmlHttp.open("GET", "/setup/transconf/transConfAction.do?method=check&startDate=2011-11-11&endDate=2012-12-12", true);
xmlHttp.send(null);
}
//回调函数
function signCallBackPackSend_bufa() {
if (xmlHttp.readyState == 4) {
var value = xmlHttp.responseText; //获取返回字符串
alert(value);
}
}
//action 返回传入的参数 startDate ; endDate
public ActionForward check(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String startDate=request.getParameter("startDate");
String endDate=request.getParameter("endDate");
try {
PrintWriter out = response.getWriter();
out.print(startDate+";"+endDate);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
作者: tlzl31719 发布时间: 2011-12-02
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28