如何定義ajax $ .post的成功和失敗功能?jquery檢查ajax後的成功
60
A
回答
105
的文檔是在這裏:http://docs.jquery.com/Ajax/jQuery.ajax
但是,要總結,Ajax調用需要一堆選項。你正在尋找的是錯誤和成功。
你會這樣稱呼它:
$.ajax({
url: 'mypage.html',
success: function(){
alert('success');
},
error: function(){
alert('failure');
}
});
我已經證明了成功和錯誤函數沒有參數,但它們可以接收參數。
錯誤函數可以帶三個參數:XMLHttpRequest,textStatus和errorThrown。
成功函數可以帶兩個參數:data和textStatus。您請求的頁面將位於數據參數中。
43
如果您需要失敗函數,則不能使用$ .get或$ .post函數;你將需要直接調用$ .ajax函數。你傳遞一個可以有「成功」和「錯誤」回調的選項對象。
取而代之的是:
$.post("/post/url.php", parameters, successFunction);
你這樣做:
$.ajax({
url: "/post/url.php",
type: "POST",
data: parameters,
success: successFunction,
error: errorFunction
});
有許多可用的過其他選項。 The documentation列出了所有可用的選項。
2
我在想,爲什麼他們沒有jQuery中本身提供,所以我做了jQuery的文件中的一些變化,,,這裏有改變的代碼塊:
原代碼塊:
post: function(url, data, callback, type) {
// shift arguments if data argument was omited
if (jQuery.isFunction(data)) {
type = type || callback;
callback = data;
data = {};
}
return jQuery.ajax({
type: "POST",
url: url,
data: data,
success: callback,
dataType: type
});
更改代碼塊:
post: function (url, data, callback, failcallback, type) {
if (type === undefined || type === null) {
if (!jQuery.isFunction(failcallback)) {
type=failcallback
}
else if (!jQuery.isFunction(callback)) {
type = callback
}
}
if (jQuery.isFunction(data) && jQuery.isFunction(callback)) {
failcallback = callback;
}
// shift arguments if data argument was omited
if (jQuery.isFunction(data)) {
type = type || callback;
callback = data;
data = {};
}
return jQuery.ajax({
type: "POST",
url: url,
data: data,
success: callback,
error:failcallback,
dataType: type
});
},
這應該會幫助那個試圖捕獲jQuery中$.Post錯誤的人。
更新時間: 或者有另一種方式來做到這一點的是:使用jQuery 1.8及以上
$.post(url,{},function(res){
//To do write if call is successful
}).error(function(p1,p2,p3){
//To do Write if call is failed
});
28
,應使用以下命令:
var request = $.ajax({
type: 'POST',
url: 'mmm.php',
data: { abc: "abcdefghijklmnopqrstuvwxyz" } })
.done(function(data) { alert("success"+data.slice(0, 100)); })
.fail(function() { alert("error"); })
.always(function() { alert("complete"); });
簽出的文檔作爲@hitautodestruct陳述。
-1
這種風格也有可能:
$.get("mypage.html")
.done(function(result){
alert("done. read "+result.length+" characters.");
})
.fail(function(jqXHR, textStatus, errorThrown){
alert("fail. status: "+textStatus);
})
相關問題
- 1. 檢查jQuery的AJAX負荷成功
- 2. RedirectToAction不成功後jquery ajax後成功?
- 3. jQuery ajax後完成/成功/刪除後
- 4. Ajax成功後的jQuery addClass/removeClass
- 5. Ajax成功後的jQuery rebind監聽器
- 6. jQuery刪除tr成功後ajax
- 7. 添加成功,以加倍jQuery/ajax後
- 8. Ajax和Jquery - 成功
- 9. jQuery ajax()/ post()&成功
- 10. jquery php ajax用戶名檢查功能
- 11. AJAX觸發器遠程腳本,然後檢查成功響應
- 12. 檢查刪除是否成功消息php ajax jquery mysql
- 13. 重寫Jquery的AJAX成功
- 14. AJAX成功後封裝成功
- 15. jQuery的AJAX功能的成功
- 16. jQuery的AJAX功能產生成功
- 17. AJAX成功後刷新Div
- 18. jquery Ajax調用不成功
- 19. 延遲ajax成功,jQuery
- 20. jquery ajax成功加載js
- 21. jQuery AJAX成功上下文
- 22. jquery ajax獲得成功
- 23. jquery ajax和成功事件?
- 24. jQuery ajax成功條件..?
- 25. JQuery ajax成功幫助
- 26. jQuery Ajax成功變量
- 27. jQuery AJAX成功回調
- 28. 成功jQuery Ajax非常慢
- 29. 檢查INSERT成功
- 30. window.open在jquery ajax成功回調塊後續ajax調用
請注意,取消通知的位置:http://bit.ly/nuiyyE。 從jQuery 1.8開始,成功,錯誤和完整的方法將被棄用,而不是使用:done,fail和always。 – hitautodestruct 2012-01-16 14:06:36
如果我正確讀取,棄用通知*僅適用於返回的jqXHR對象上的success()等,但不適用於使用settings對象指定的值。所以'$ .ajax(url).success(...)`會被棄用,應該使用`$ .ajax(url).done(...)`而不是。 '$ .ajax(url,{success:...}'仍然可以,我沒有看到這些設置成員的個別描述的棄用聲明。 – 2012-10-31 19:36:50
其中一個答案記錄了@hitautodestruct提到的內容。 – MrBoJangles 2013-02-05 20:34:33