我在项目中使用laravel。在我的项目中存在许多ajax请求。对于错误处理我使用此代码分区。
error: function(jqXHR, exception) {
if (jqXHR.status === 0) {
alert('Bağlantı sağlanamadı.\n Lütfen internet bağlantınızı kontrol ediniz.');
} else if (jqXHR.status === 404) {
alert('Sayfa bulunamadı. [404]');
} else if (jqXHR.status === 401) {
window.location.replace('{{ route('login') }}');
} else if (jqXHR.status === 500) {
alert('Sunucu Hatası [500].');
} else if (exception === 'parsererror') {
alert('Requested JSON parse failed.'+ jqXHR.responseText);
} else if (exception === 'timeout') {
alert('Time out error.');
} else if (exception === 'abort') {
alert('Ajax istemi durduruldu.');
} else {
alert('Beklenmeyen Hata.\n' + jqXHR.responseText);
}
},
我为每一个请求重复自己。
我想写成error: '{{ ajaxError() }}'
作为辅助方法。但我无法处理它。无论如何都要在刀片中做到这一点。我不想重复自己。
答案 0 :(得分:0)
可能从刀片服务器输出回调名称不是最佳解决方案
如果您使用JQuery,则可以将全局错误处理程序附加到每个页面:(将其放在页面脚本的开头)
$(document).ajaxError(function (event, jqXHR, settings, exception)
{
if (jqXHR.status === 0) {
alert('Bağlantı sağlanamadı.\n Lütfen internet bağlantınızı kontrolediniz.');
} else if (jqXHR.status === 404) {
alert('Sayfa bulunamadı. [404]');
} else if (jqXHR.status === 401) {
window.location.replace('{{ route('login') }}');
} else if (jqXHR.status === 500) {
alert('Sunucu Hatası [500].');
} else if (exception === 'parsererror') {
alert('Requested JSON parse failed.'+ jqXHR.responseText);
} else if (exception === 'timeout') {
alert('Time out error.');
} else if (exception === 'abort') {
alert('Ajax istemi durduruldu.');
} else {
alert('Beklenmeyen Hata.\n' + jqXHR.responseText);
}
} );
这样您甚至不必为每个请求指定错误回调,但每次ajax调用都会返回错误,将执行全局回调
如果你不想使用jquery,你可以定义一个回调函数:
function errorCallback (event, jqXHR, settings, exception)
{
if (jqXHR.status === 0) {
alert('Bağlantı sağlanamadı.\n Lütfen internet bağlantınızı kontrolediniz.');
} else if (jqXHR.status === 404) {
alert('Sayfa bulunamadı. [404]');
} else if (jqXHR.status === 401) {
window.location.replace('{{ route('login') }}');
} else if (jqXHR.status === 500) {
alert('Sunucu Hatası [500].');
} else if (exception === 'parsererror') {
alert('Requested JSON parse failed.'+ jqXHR.responseText);
} else if (exception === 'timeout') {
alert('Time out error.');
} else if (exception === 'abort') {
alert('Ajax istemi durduruldu.');
} else {
alert('Beklenmeyen Hata.\n' + jqXHR.responseText);
}
}
并将其附加到每个ajax请求:
error: errorCallback