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); })