如何获得ajax调用的默认错误
How to get default error of ajax call
好的,我要做的是根据它的错误代码提醒ajax错误,我在网站上有很多ajax调用,所以我使用全局ajax错误处理函数。
但是我想要的是,如果一些ajax调用已经有默认错误,那么显示没有全局。
$(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",
});
那么在第二种情况下,它应该显示你有一个错误在第一种情况下,它只是错误
是的,你可以,但是你必须重写jQuery默认的$.ajax
方法。检查我在其中一个项目中使用的以下代码。确保在jQuery
之后加载脚本。
我的场景是-
-
该网站有很多ajax部分视图,必须检查用户是否登录或没有。所以我必须重写jquery调用来检查它。
-
我还必须在任何ajax调用时显示加载器
-
还有一件事,有些js是通过ajax加载的,所以我增加了一个检查url是一个。js文件还是正常的url。
我已经取出了我的项目机密的敏感代码。剩下的在这里。这可能对你有帮助。
$(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);
};
});
相关文章:
- 在AngularJs中隐藏默认错误消息
- 具有默认参数值的 ES6 类构造函数上的 NodeJS 错误
- 如何在Ajax错误上抛出404错误,以便指向默认的404行为
- JayData 上的默认错误回调
- 如何用“重定向”来重定向网页;http错误404”;自动切换到默认网页
- jspm强制错误的默认值
- 通过在默认值中指定错误值来避免陷阱
- Javascript开关情况-导致错误的默认选项
- 如何只有在所有默认项都通过且没有错误后才能运行Gulp任务
- angular js中的默认错误处理程序
- DataTables:未捕获类型错误:无法读取属性'默认'的未定义
- jQuery promise的默认错误函数
- 骨干网默认错误获取功能
- 错误:github推送后未指定默认引擎,也未提供扩展
- Angular:未处理http错误的默认处理程序
- 在某些目录级别内的默认登陆页面出现404错误
- 如何获得ajax调用的默认错误
- Ember上的默认错误模板未加载
- 更改mootools表单验证器的默认错误消息
- 在具有相同名称的多个复选框上设置必需属性,并将默认错误消息替换为自定义