GVKun编程网logo

Ajax success error complete 等option配置(ajax success fail)

11

本文将分享Ajaxsuccesserrorcomplete等option配置的详细内容,并且还将对ajaxsuccessfail进行详尽解释,此外,我们还将为大家带来关于$.ajax({})方法suc

本文将分享Ajax success error complete 等option配置的详细内容,并且还将对ajax success fail进行详尽解释,此外,我们还将为大家带来关于$.ajax({})方法success,error,complete,beforeSend使用例子及解释、$.ajax({})方法中的回调函数beforeSend,success,complete,error使用示例、$.ajax的beforeSend,success, complete,error例子、Action中写入返回值后, 前台jQuery ajax 执行error, 不执行success的相关知识,希望对你有所帮助。

本文目录一览:

Ajax success error complete 等option配置(ajax success fail)

Ajax success error complete 等option配置(ajax success fail)

  • beforeSend 在发送请求之前调用,并且传入一个XMLHttpRequest作为参数。
  • error 在请求出错时调用。传入XMLHttpRequest对象,描述错误类型的字符串以及一个异常对象(如果有的话),
  • success 当请求之后调用。传入返回后的数据,以及包含成功代码的字符串。
  • complete 当请求完成之后调用这个函数,无论成功或失败。传入XMLHttpRequest对象,以及一个包含成功或错误代码的字符串。

优先级 error 执行完毕之后 才是 complete,就说无论请求遇到异常否都会执行success.
当判断ajax超时,error 和complete函数 中 选择一个 对textStatus做处理即可

$.ajax({
    url:'',type:'get',beforeSend:function(jqXHR){
    },success:function(data,textStatus,jqXHR){
    },error:function(jqXHR,errorThrown)  {

    }
    complete:function(jqXHR,textStatus){
    }


})

$.ajax({})方法success,error,complete,beforeSend使用例子及解释

$.ajax({})方法success,error,complete,beforeSend使用例子及解释

在与后台交互的时候,经常使用到jquery的$.ajax()方法来请求数据;

回调函数用的比较多的是success,但是complete、beforeSend、error函数也是很有用的;

下面是使用例子小结:

HTML代码:

<!DOCTYPE html>
<html lang="en">
<head>
<Meta charset="UTF-8">
<title>ajax_demo</title>
</head>
<style>
.display{
    width:600px;
    height: 400px;
    border:1px solid;
}
</style>
<body>
<divhttps://www.jb51.cc/tag/Box/" target="_blank">Box">展示数据区域:</div>
<divhttps://www.jb51.cc/tag/dis/" target="_blank">display"/></div>
<input type="button" value="点击获取数据" id="inp" onclick="getData()"/>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="bootstrap.min.js"></script>
<script type="text/javascript">
js代码:
<script type="text/javascript">
function getData(){

    $.ajax({
        url:'http://192.168.31.227/sfytjjk/wdaj/wdla.PHP',type:"post",timeout:5000,async:true,cache:true,data:"user_id=12&page=0",dataType:"json",contentType:"application/x-www-form-urlencoded",beforeSend:function(XMLHttpRequest){
            console.log(this);
            $("#inp").val("正在获取数据..."); 
        },success:function(data){
            console.log(data);
            $(".display").html("获取到的数据:</br>");
            $(".display").append("总条数:"+data.data.all_count);
            $("#inp").val("点击获取数据"); 
        },complete:function(XMLHttpRequest,textStatus){
            if(textStatus=='timeout'){
                var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
                xmlhttp.abort(); 
                $(".Box").html("网络超时!");
        }
            $("#inp").val("点击获取数据"); 
        },error:function(XMLHttpRequest,textStatus){
            console.log(XMLHttpRequest);  //XMLHttpRequest.responseText    XMLHttpRequest.status   XMLHttpRequest.readyState
            console.log(textStatus);
            $(".Box").html("服务器错误!");
        }
    });

/* 
通过捕捉error事件来获取出错的信息:
error: function(XMLHttpRequest,textStatus,errorThrown) {
 alert(XMLHttpRequest.status);
 alert(XMLHttpRequest.readyState);
 alert(textStatus);
}

XMLHttpRequest.readyState: 状态码的意思
0 - (未初始化)还没有调用send()方法
1 - (载入)已调用send()方法,正在发送请求
2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
3 - (交互)正在解析响应内容
4 - (完成)响应内容解析完成,可以在客户端调用了

status:返回的HTTP状态码,比如常见的404,500等错误代码。
statusText:对应状态码的错误信息,比如404错误信息是not found,500是Internal Server Error。
responseText :服务器响应返回的文本信息

complete: function (XMLHttpRequest,textStatus) {  
    //textStatus的值:success,notmodified,nocontent,error,timeout,abort,parsererror  
},error: function (XMLHttpRequest,errorThrown) {  
    //textStatus的值:null,parsererror  
    //errorThrown的值:收到http出错文本,如 Not Found 或 Internal Server Error.  
}  
*/
}
</script>
关于ajax的开始的一些参数,cache,contentType等等,自己查下看看就明白了。

$.ajax({})方法中的回调函数beforeSend,success,complete,error使用示例

$.ajax({})方法中的回调函数beforeSend,success,complete,error使用示例

在与后台交互的时候,经常使用到jquery的$.ajax()方法来请求数据。回调函数用的比较多的是success,但是beforeSend、complete、error函数也是很有用的。
下面是使用例子小结:

$.ajax({
    url: "pro/test.php",
    type: "post",
    timeout: 5000,
    async: true,
    cache: true,
    data: $(''#jsForm'').serialize(),
    dataType: "json",
    contentType: "application/x-www-form-urlencoded",
    beforeSend: function(XMLHttpRequest){
        console.log(this);
        $("#inp").val("正在获取数据..."); 
    },
    success: function(data){
        console.log(data);
        $(".display").html("获取到的数据:</br>");
        $(".display").append("总条数:"+data.data.all_count);
        $("#inp").val("点击获取数据"); 
    },
    complete: function(XMLHttpRequest,textStatus){
        if(textStatus==''timeout''){
            var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
            xmlhttp.abort(); 
            $(".box").html("网络超时!");
    }
        $("#inp").val("点击获取数据"); 
    },
    error: function(XMLHttpRequest, textStatus){
        console.log(XMLHttpRequest);  //XMLHttpRequest.responseText    XMLHttpRequest.status   XMLHttpRequest.readyState
        console.log(textStatus);
        $(".box").html("服务器错误!");
    }
});

 

  至此。转载请注明出处。

$.ajax的beforeSend,success, complete,error例子

$.ajax的beforeSend,success, complete,error例子

jquery ajax官方文档: http://api.jquery.com/jquery.ajax/

常用的ajax形式:

$.ajax({
    url: "http://192.168.2.46:8000/account/getjson/",type: "post",dataType: "json",// 跨域使用jsonp
    contentType: "application/x-www-form-urlencoded; charset=UTF-8"
    data: {
        "user": "admin","password": "123456"
    },beforeSend: function(XMLHttpRequest) {
        // do something...
        return true;
    },success: function(data) {
        // alert(JSON.stringify(data));
        // do something...
    },complete: function(XMLHttpRequest,textStatus) {
        // textStatus的值:success,notmodified,nocontent,error,timeout,abort,parsererror 
    },error: function(XMLHttpRequest,textStatus,errorThrown) {
        // textStatus的值:null,parsererror
        // errorThrown的值:收到http出错文本,如 Not Found 或 Internal Server Error
    }
});

Action中写入返回值后, 前台jQuery ajax 执行error, 不执行success

Action中写入返回值后, 前台jQuery ajax 执行error, 不执行success

//action - execute
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html");
String msg = "{\"state\":\"" + state + "\"}";
PrintWriter out = response.getWriter();
out.write(msg);
out.flush();
out.close();
return null;
<package name="global" extends="json-default">
	<action name="login">
		<result type="json" />
	</action>
</package>
jQ.ajax({
	url:"login.action",
	data:params,
	success:function(json){
	var data = json.state;
	if(data=="success")
		jQ.jBox.alert("登入成功", "action message");
		if(data=="failed")
			jQ.jBox.alert("登入失败", "action message");
		if(data=="error")
			jQ.jBox.alert("登入出错", "action message");
	},
	error:function(XMLHttpRequest, textStatus, errorThrown){  									alert("XMLHttpRequest.status="+XMLHttpRequest.status+
"\nXMLHttpRequest.readyState="+XMLHttpRequest.readyState+				"\ntextStatus="+textStatus);
	}
    		});

在 jQ.ajax() 的时候总是执行error下的回调函数,根本不执行success回调函数,请各位帮忙看下,是为什么。

还有想请教一个问题,在Action中 如果把所需要传递到前台的数据 不用 response.getWriter().Write() 来写,而用Action的setter,getter方法来实现,这样是否可行?

各位劳烦帮忙看下,谢谢。@红薯 老大,您怎么看?

关于Ajax success error complete 等option配置ajax success fail的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于$.ajax({})方法success,error,complete,beforeSend使用例子及解释、$.ajax({})方法中的回调函数beforeSend,success,complete,error使用示例、$.ajax的beforeSend,success, complete,error例子、Action中写入返回值后, 前台jQuery ajax 执行error, 不执行success等相关知识的信息别忘了在本站进行查找喔。

本文标签: