关于ajax请求等待完成

象163邮箱,在发送邮件时,如果附件还没上传完成,会等待附件上传完成后再发送。这个是怎么实现得,给个思路~
最新回答
思乔香沁雪

2024-11-24 02:23:35

可以使用同步请求,等待ajax请求完成返回数据后在执行其他操作。
例子 JQuery ajax
$.ajax({
type: "post", //get或post请求
url: "UserAjax.ashx", //请求url
data: { "type": "check", "uname": "admin","pwd":"admin" }, //参数
async: false, //同步请求, true为异步,默认情况都是异步
success: function (data) { //请求成功后执行
//操作...
},
error: function () { //请求错误后执行
alert("服务器出错");
}
});

顺便写个 XMLHttpRequest 的readyState属性5种状态
0:未初始化
1:已打开
2:已发送
3:正在接收
4:已加载
我是女神哦买噶

2024-11-24 05:20:24

回答这里有我做的一个绑定班级的一个下拉框,用jquery.ajax做的,你可以看看:
页面代码:
<html xmlns="
http://www.w3.org/1999/xhtml
" >
<head>
<title>$.Ajax</title>
<script src="../Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$("#btnAjax").click(function() {
$.ajax({
beforeSen: function(XMLHttpRequest) {
alert("开始向服务器发送请求!");
},
complete: function(XMLHttpRequest, textStatus) {
alert("与服务器交互完成调用!");
},
sussess: function(data, textStatus) {
alert("与服务器完成交互,请求成功时调用!");
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("与服务器完成交互,请求失败时调用!"); } }); });});
$(function() {
$.ajax({
type: "post",
url: "Demo1Handler.ashx",
datatype: "JOSN",
timeout: 5000,
error: function() { alert("Error loading data!") },
success: function(data) {
$("#msg").empty();
$.each(eval(data), function(i, item) {
$("<option>" + item.ClassName + "</option>")
.attr("value", item.ClassID)
.appendTo($("#selClass"));
});
}
});
});
</script>
</head>
<body>
<input id="btnAjax" type="button" value="获取 Ajax 请求状态" />
<div id="msg"></div>
班级:
<select id="selClass">
<option value="0">--请选择--</option>
</select>
</body>
</html>
找小黑把校园炸了O∩_∩O

2024-11-24 04:06:37

ajax的请求非为4个过程的,你使用的是框架呢还是基本的js呢,基本的js的话就麻烦点