Javascript 如何获取ajax调用的默认错误
好的,我想做的是根据错误代码提醒ajax错误,我在网站上有很多ajax调用,所以我使用全局ajax错误处理函数 但我想要的是,如果某个ajax调用已经有默认错误,那么就显示没有全局错误Javascript 如何获取ajax调用的默认错误,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,好的,我想做的是根据错误代码提醒ajax错误,我在网站上有很多ajax调用,所以我使用全局ajax错误处理函数 但我想要的是,如果某个ajax调用已经有默认错误,那么就显示没有全局错误 $(document).ready(function(){ $(document).ajaxError(e,xhr,opt){ if(xhr.error){ //Don't do anything } else { alert
$(document).ready(function(){
$(document).ajaxError(e,xhr,opt){
if(xhr.error){
//Don't do anything
} else {
alert('You have an error');
}
}
}
第一个功能:
$.ajax({
type:"post",
url:"page.php",
data:"name=mohit&lastname=bumb",
error:function(){
alert('error');
}
});
$.ajax({
type:"post",
url:"page.php",
data:"name=mohit&lastname=bumb",
});
第二个功能:
$.ajax({
type:"post",
url:"page.php",
data:"name=mohit&lastname=bumb",
error:function(){
alert('error');
}
});
$.ajax({
type:"post",
url:"page.php",
data:"name=mohit&lastname=bumb",
});
因此,在第二种情况下,它应该显示您有一个错误,在第一种情况下,只显示错误是的,您可以,但是您必须覆盖jQuery默认的
$.ajax
方法。检查我在一个项目中使用的以下代码。确保在jQuery
之后加载脚本
我的设想是——
$(document).ready(function () {
var oldjQuery = [];
oldjQuery["ajax"] = $.ajax;
oldjQuery["load"] = $.load;
var newOptions = [];
//override ajax
jQuery.ajax = function (options) {
newOptions["ajax"] = $.extend({}, options);
//override the success callback
newOptions["ajax"].success = function (data, textStatus, jqXhr) {
try {
if (options.url.indexOf('.js') <= -1) {
//this is a normal success call, do nothing
}
}
catch (err) {
//... my other codes, incase any error occurred
}
if (typeof options.success != 'undefined') {
//the ajax call has a success method specified, so call it
options.success(data, textStatus, jqXhr);
}
};
//override the error callback
newOptions["ajax"].error = function (jqXhr, textStatus, errorThrown) {
try {
if (options.url.indexOf('.js') <= -1) {
//this is a normal success call, do nothing
}
}catch (y) {
//... my other codes, incase any error occurred
}
//the ajax call has an error method specified, so call it
if (typeof options.error != 'undefined') {
options.error(jqXhr, textStatus, errorThrown);
}
};
return oldjQuery["ajax"](newOptions["ajax"]);
};
//override load function
jQuery.load = function (url, data, completeCallback, ignore) {
newOptions["load"].completeCallback = function (d, textStatus, jqXhr) {
try {
if (url.indexOf('.js') <= -1) {
//codes
}
} catch (err) {
try {
//codes
}catch (err2) {
}
}
if (typeof completeCallback != 'undefined') {
//call the default completed callback
completeCallback(d, textStatus, jqXhr);
}
};
return oldjQuery["load"](url, data, newOptions["load"].completeCallback);
};
});
$(文档).ready(函数(){
var oldjQuery=[];
oldjQuery[“ajax”]=美元.ajax;
oldjQuery[“加载”]=美元.load;
var newOptions=[];
//重写ajax
jQuery.ajax=函数(选项){
newOptions[“ajax”]=$.extend({},options);
//覆盖成功回调
newOptions[“ajax”].success=函数(数据、文本状态、jqXhr){
试一试{
如果(options.url.indexOf('.js')正常,但那只是输入了misatake not issueI我不认为你能做到这一点,那么全局错误处理程序如何知道ajax函数有一个自己的错误处理程序,它有一些参数可能像如果错误参数存在,那么它有自己的错误,我认为没有最简单的逻辑