как определить функцию успеха и отказа ajax $.post?
Jquery проверяет успех ajax post
Ответ 1
Документация находится здесь: 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. Запрошенная вами страница будет в аргументе данных.
Ответ 2
Если вам нужна функция сбоя, вы не можете использовать функции $.get или $.post; вам нужно будет напрямую вызвать функцию $.ajax. Вы передаете объект опций, который может иметь обратные вызовы "success" и "error".
Вместо этого:
$.post("/post/url.php", parameters, successFunction);
вы бы использовали это:
$.ajax({
url: "/post/url.php",
type: "POST",
data: parameters,
success: successFunction,
error: errorFunction
});
Есть много других доступных вариантов. В документации перечислены все доступные параметры.
Ответ 3
с использованием jQuery 1.8 и выше, следует использовать следующее:
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.
Ответ 4
Мне было интересно, почему они не предоставили в 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
});
},
Это должно помочь тому, кто пытается поймать ошибку в $.Post в jquery.
Обновлено: Или есть другой способ сделать это:
$.post(url,{},function(res){
//To do write if call is successful
}).error(function(p1,p2,p3){
//To do Write if call is failed
});
Ответ 5
Этот стиль также возможен:
$.get("mypage.html")
.done(function(result){
alert("done. read "+result.length+" characters.");
})
.fail(function(jqXHR, textStatus, errorThrown){
alert("fail. status: "+textStatus);
})