làm cách nào để tôi xác định hàm thành công và lỗi của ajax $ .post?Kiểm tra thành công Jquery của bài đăng ajax
Trả lời
Các tài liệu là ở đây: http://docs.jquery.com/Ajax/jQuery.ajax
Nhưng, để tóm tắt, cuộc gọi ajax mất một loạt các tùy chọn. những cái bạn đang tìm kiếm là lỗi và thành công.
Bạn sẽ gọi nó là như thế này:
$.ajax({
url: 'mypage.html',
success: function(){
alert('success');
},
error: function(){
alert('failure');
}
});
tôi đã cho thấy sự thành công và không bị lỗi chức năng chụp không có đối số, nhưng họ có thể nhận đối số.
Hàm lỗi có thể lấy ba đối số: XMLHttpRequest, textStatus và errorThrown.
Chức năng thành công có thể lấy hai đối số: dữ liệu và textStatus. Trang bạn yêu cầu sẽ nằm trong đối số dữ liệu.
Nếu bạn cần chức năng lỗi, bạn không thể sử dụng các hàm $ .get hoặc $ .post; bạn sẽ cần gọi hàm $ .ajax trực tiếp. Bạn chuyển một đối tượng tùy chọn có thể có các cuộc gọi lại "thành công" và "lỗi".
Thay vì điều này:
$.post("/post/url.php", parameters, successFunction);
bạn sẽ sử dụng này:
$.ajax({
url: "/post/url.php",
type: "POST",
data: parameters,
success: successFunction,
error: errorFunction
});
Có rất nhiều lựa chọn khác có sẵn quá. The documentation liệt kê tất cả các tùy chọn có sẵn.
có bất kỳ điều gì cụ thể được kiểm tra ở phía máy chủ, trong khi các cuộc gọi url.php? như thế nào tôi biết nếu cuộc gọi đã thành công hay sai lầm? tôi có phải trả lại true/false, null hoặc một cái gì đó của các loại? Tôi đang cố gắng này trên thanh chống, và một chút nhầm lẫn những gì của tôi AC lớp tion sẽ trở lại. Như thế nào tôi biết điều gì đó đã thành công hay không .. –
@Kaushik: Nó dựa trên mã trạng thái HTTP được máy chủ trả về. Về cơ bản, bất cứ điều gì ngoại trừ 2xx hoặc 304 (không sửa đổi) được coi là một lỗi. Các điều kiện khác là nếu kết nối hết thời gian hoặc bạn không thể kết nối với máy chủ vì một số lý do. –
Hoàn hảo! điều đó có ý nghĩa. Chúc mừng. –
tôi đã tự hỏi, tại sao họ didnt cung cấp trong bản thân jquery, vì vậy tôi thực hiện một vài thay đổi trong tập tin jquery ,,, đây là những khối mã thay đổi:
gốc Mã khối:
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
});
Đã thay đổi Mã khối:
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
});
},
Điều này sẽ giúp người dùng cố gắng gặp lỗi trên $ .Post trong jquery.
Cập nhật: Hoặc có một cách khác để làm điều này là:
$.post(url,{},function(res){
//To do write if call is successful
}).error(function(p1,p2,p3){
//To do Write if call is failed
});
sử dụng jQuery 1.8 trở lên, nên sử dụng như sau:
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"); });
kiểm tra ra các tài liệu như @hitautodestruct nói .
Điều này có thể được sử dụng cho $ .post và $ .get !! Như được hiển thị trong [tài liệu] (http://api.jquery.com/jQuery.post/) – Brainfeeder
Đây dường như là câu trả lời hay nhất kể từ năm 2014. – TheCarver
vẫn là tốt nhất với v3.x trong năm 2016 – qwertzman
phong cách này cũng có thể:
$.get("mypage.html")
.done(function(result){
alert("done. read "+result.length+" characters.");
})
.fail(function(jqXHR, textStatus, errorThrown){
alert("fail. status: "+textStatus);
})
- 1. Tại sao bài đăng không thành công trong bài kiểm tra chức năng Rails của tôi?
- 2. Phạm vi thành công của Ajax jquery
- 3. Bài đăng jQuery .ajax không thành công với đối tượng JSON lớn
- 4. Thành công jQuery AJAX
- 5. QUnit với Ajax, QUnit vượt qua các bài kiểm tra không thành công
- 6. Cách tốt nhất để kiểm tra xem yêu cầu AJAX đã thành công trong jQuery
- 7. Kiểm tra trạng thái yêu cầu ajax của jQuery
- 8. jQuery Ajax POST không thành công
- 9. Dữ liệu đăng bài JQuery $ .ajax() trong một servlet java
- 10. Bài đăng Ajax không hoạt động - Jquery Phonegap Android
- 11. Mảng bị cắt nhỏ trên bài đăng ajax. Giới hạn gửi bài của Ajax?
- 12. Một số bài kiểm tra bài kiểm tra đơn vị của tôi không hoàn thành trong XCode 4.4
- 13. Chuyển hướng sau bài đăng Ajax
- 14. thay đổi liên kết giới thiệu của Bài đăng Ajax
- 15. Tham số hàm thành công jQuery Ajax
- 16. jQuery bài yêu cầu (không AJAX)
- 17. JQuery Ajax Đăng lên C#
- 18. Kiểm tra bài đăng im lặng với Authorize.net
- 19. Định dạng JSON (Gửi JSON qua bài đăng AJAX của jQuery tới máy chủ Java/Wicket)
- 20. Kiểm tra đơn vị của Microsoft không thành công, không thể tải DLL để kiểm tra
- 21. Điểm của bài kiểm tra% eax% eax
- 22. Gọi lại thành công jQuery ajax không bắn
- 23. Mảng bài đăng jQuery - ASP.Net MVC 4
- 24. kiểm tra thành công của write.csv trong R
- 25. jQuery AJAX Đăng không đăng dữ liệu
- 26. Kiểm tra Maven không thành công
- 27. Tôi có thể nói nếu tất cả các bài kiểm tra được chuyển qua Bài kiểm tra của Perl :: Thêm?
- 28. Hướng dẫn Ajax cho bài đăng và nhận
- 29. jquery datepicker ms ajax updatepanel không hoạt động sau khi đăng bài trở lại
- 30. Chia nhỏ các bài kiểm tra RSpec của bạn
Xin lưu ý thông báo deprecation đây: http://bit.ly/nuiyyE. Kể từ jQuery 1.8, các phương pháp thành công, lỗi và đầy đủ sẽ không được dùng nữa thay vì sử dụng: thực hiện, thất bại và luôn luôn. – hitautodestruct
Nếu tôi đọc chính xác, thông báo không dùng nữa * chỉ * áp dụng cho thành công() vv trên đối tượng jqXHR trả về, nhưng không áp dụng cho đối tượng được chỉ định bằng cách sử dụng đối tượng cài đặt. Vì vậy, '$ .ajax (url) .success (...)' sẽ không được dùng nữa và nên sử dụng '$ .ajax (url) .done (...) 'thay thế. '$ .ajax (url, {success: ...}' vẫn ổn, tôi không thấy thông báo phản đối về các mô tả riêng lẻ của các thành viên cài đặt đó. –
Một trong những câu trả lời này là tài liệu mà @hitautodestruct đã đề cập. – MrBoJangles