前一个ajax掉完判断是否再调用下一个ajax
题目:跨域ajax,当ajax1执行后根据返回结果执行ajax2,当ajax2执行后根据结果执行ajax3……
方法一:基础方法,ajax嵌套
//检查账号是否存在
$.ajax({
type:'get',
url:'http://www.yuming.com/checkname',
data:{'name':name,'key':key},
dataType:'jsonp',
success:function(msg){
if(msg.result==1){
//检查短信验证码
$.ajax({
type:'get',
url:'http://www.yuming.com/checkcode',
data:{'name':name,'code':code,'key':key},
dataType:'jsonp',
success:function(msg){
if(msg.result==1){
//注册提交
$.ajax({
type:'POST',
url:'http://www.yuming.com/register,
data:{'name':name,'pwd':pwd,'code':code,'key':key},
dataType:'jsonp',
success:function(msg){
alert( msg.message );
return false;
}
});
}else{
alert( msg.message );
return false;
}
}
});
}else{
alert( msg.message );
return false;
}
}
});
方法二、利用$.when
//检查账号是否存在
var checkname = $.ajax({
type:'get',
url:'http://www.yuming.com/checkname',
data:{'name':name,'key':key},
dataType:'jsonp'
});
$.when(checkname).done(function(data){
//console.log(data);
if(data.result==1){
//检查短信验证码
var checkcode = $.ajax({
type:'get',
url:'http://www.yuming.com/checkcode',
data:{'name':name,'code':code,'key':key},
dataType:'jsonp'
});
$.when(checkcode).done(function(msg){
//console.log(msg);
if(msg.result==1){
//注册提交
var register = $.ajax({
type:'get',
url:'http://www.yuming.com/register',
data:{'name':name,'pwd':pwd,'code':code,'key':key},
dataType:'jsonp'
});
$.when(register).done(function(e){
alert( e.message );
return false;
});
}else{
alert( msg.message);
return false;
}
});
}else{
alert( data.message );
return false;
}
});
注:为了防止密码等信息被拦截,建议应该加密后进行提交。
http加密方案:
1、对称加密:DES、3DES、AES、RC5、TDEA、Blowfish、IDEA
2、非对称加密:RSA、md5、Elgamal、Base64、Rabin、HD、ECC
这个是自己总结的,如果有什么不对的地方欢迎指正,谢谢