jquery检查ajax post的成功

我如何定义ajax $ .post的成功和失败的function?

文档在这里: http : //docs.jquery.com/Ajax/jQuery.ajax

但总而言之,ajax调用需要一些选项。 你正在寻找的是错误和成功。

你会这样称呼它:

$.ajax({ url: 'mypage.html', success: function(){ alert('success'); }, error: function(){ alert('failure'); } }); 

我已经显示了没有任何争论的成功和错误的function,但他们可以接受争论。

错误函数可以有三个参数:XMLHttpRequest,textStatus和errorThrown。

成功函数可以有两个参数:data和textStatus。 您请求的页面将在数据参数中。

如果您需要失败函数,则不能使用$ .get或$ .post函数; 你将需要直接调用$ .ajax函数。 你传递一个可以有“成功”和“错误”callback的选项对象。

而不是这个:

 $.post("/post/url.php", parameters, successFunction); 

你会用这个:

 $.ajax({ url: "/post/url.php", type: "POST", data: parameters, success: successFunction, error: errorFunction }); 

还有很多其他选项可用。 该文档列出了所有可用的选项。

使用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声明的文档。

我想知道,为什么他们没有提供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错误的人。

更新:或者有另一种方法来做到这一点是:

  $.post(url,{},function(res){ //To do write if call is successful }).error(function(p1,p2,p3){ //To do Write if call is failed }); 

这种风格也是可能的:

 $.get("mypage.html") .done(function(result){ alert("done. read "+result.length+" characters."); }) .fail(function(jqXHR, textStatus, errorThrown){ alert("fail. status: "+textStatus); })