來看個ajax的簡單例子:
jQuery(function($){
$("button").click(function(){
var name = $(this).attr("name");
$.ajax({
url:"hello.php",
type:"POST",
data:{"search":name},
success:function(data)
{
alert("success");
},
error: function(){
alert("error");
}
});
這個段程式碼,在現在基於Restful API架構,前後端嚴格分離的WEB程式中,是很常見的。現在有一個問題,那就是呼叫後,在什麼情況下走success方法,在什麼情況走error方法?
我們先簡單介紹下ajax:
簡單的說Ajax請求透過XMLHttpRequest物件傳送請求,該物件有四個狀態(readyState):
0-未初始化、1-正在初始化、2-傳送資料、3-正在傳送資料、4-完成。
當XMLHttpRequest.readyState為4時,表示ajax請求已經完成可以得到響應結果。
ajax的success和error方法根據響應狀態碼來觸發。當XMLHttpRequest.status為200的時候,表示響應成功,此時觸發success().其他狀態碼則觸發error()。
除了根據響應狀態碼外,ajax還會在下列情況下走error方法:
1. 返回資料型別不是JSON
2. 網路中斷
3. 後臺響應中斷
來看個ajax的簡單例子:
jQuery(function($){
$("button").click(function(){
var name = $(this).attr("name");
$.ajax({
url:"hello.php",
type:"POST",
data:{"search":name},
success:function(data)
{
alert("success");
},
error: function(){
alert("error");
}
});
});
});
這個段程式碼,在現在基於Restful API架構,前後端嚴格分離的WEB程式中,是很常見的。現在有一個問題,那就是呼叫後,在什麼情況下走success方法,在什麼情況走error方法?
我們先簡單介紹下ajax:
簡單的說Ajax請求透過XMLHttpRequest物件傳送請求,該物件有四個狀態(readyState):
0-未初始化、1-正在初始化、2-傳送資料、3-正在傳送資料、4-完成。
當XMLHttpRequest.readyState為4時,表示ajax請求已經完成可以得到響應結果。
ajax的success和error方法根據響應狀態碼來觸發。當XMLHttpRequest.status為200的時候,表示響應成功,此時觸發success().其他狀態碼則觸發error()。
除了根據響應狀態碼外,ajax還會在下列情況下走error方法:
1. 返回資料型別不是JSON
2. 網路中斷
3. 後臺響應中斷