现在的位置: 首页 > 综合 > 正文

jQuery ajax异步跨域提交表单实例解析

2012年10月27日 ⁄ 综合 ⁄ 共 1369字 ⁄ 字号 评论关闭

结果仍然不起作用。最后解决方案有2,如下

1、添加async:false.即修改为同步了,什么意思?(按同事解释就是,这是等这个ajax有了返回值后才会执行下面的网页特效。一语道破天机,怪不得以前很多ajax调用里面的赋值都不起作用)。这样等ajax给bol赋值完毕后,才执行下面的网页特效部分。而刚刚异步的话,还没有来得及赋值,就已经return了。

代码 
复制代码 代码如下:
function getajaxreturn() 

var bol=false; 
$.ajax({ 
type:"post", 
async:false, 
http://www.111cn.net/userexist.aspx",   url :一个action  的url 
data:"username="+vusername.value, 
success:function(msg){ 
if(msg=="ok"){ 
showtipex(vusername.id,"<img src='images/ok.gif'/><b><font color='#ffff00'>该用户名可以使用</font></b>",false) 
// return true; 
bol=true; 

else 

showtipex(vusername.id,"<img src='images/cancel.gif'/><b><font color='#ffff00'>该用户已被注册</font></b>",false); 
vusername.classname="bigwrong"; 
//return false; 


}); 
return bol; 
}

2、 通过传入一个函数解决这个问题。

代码 
复制代码 代码如下:
function getajaxreturn(success_function,fail_function) 

var bol=false; 
$.ajax({ 
type:"post", 
http://www.111cn.net/userexist.aspx", 
data:"username="+vusername.value, 
success:function(msg){ 
if(msg=="ok"){ 
showtipex(vusername.id,"<img src='images/ok.gif'/><b><font color='#ffff00'>该用户名可以使用</font></b>",false) 
success_function(msg); 

else 

showtipex(vusername.id,"<img src='images/cancel.gif'/><b><font color='#ffff00'>该用户已被注册</font></b>",false); 
vusername.classname="bigwrong"; 
fail_function(msg); 
//return false; 


}); 
function success_function(info) 

//do what you want do 
alert(info); 

funciont fail_function(info) 

//do what you want do 
alert(info); 
}

 

抱歉!评论已关闭.