Здравствуйте. Подскажите как правильно вывести ошибку (синтаксическую или логическую), та что пишется в лог файле.
Раньше когда было реализовано на JQuery.ajax, эти ошибки отлавливались и их можна было отобразить в браузере. Сейчас переписал все на fetch() и теперь только пишет, ошибка 500. И все подробности только в лог файле
вот JS функция которая реализовывает AJAX.
static ajax( caption, url, type, dataValue, dataType, callSuccess, loader = true ) {
this.pageLoader( loader );
const scriptRun = text => {
const script = document.createElement( 'script' );
script.innerHTML = text;
document.head.appendChild( script );
};
const success = data => {
if ( dataType === 'json' ) {
if ( data.status ) {
const { href, view } = data;
if ( href ) {
if ( href.search( /.pdf$/i ) === -1 ) this.assignLocation( href ); else window.open( href );
} else if ( view ) {
document.getElementById( 'view' ).innerHTML( view );
}
if ( callSuccess ) callSuccess( );
} else {
this.errorMsg( data.caption || caption, JSON.stringify( data.message, null, ' ' ) );
}
} else if ( dataType === 'script' ) {
scriptRun( data );
}
if ( loader ) this.pageLoader( false );
};
const sendAjax = async ( ) => {
let data = '';
const headers = { 'Content-Type': 'application/json' };
const body = dataValue ? JSON.stringify( dataValue ) : '';
const credentials = 'same-origin';
const respond = await fetch( url, { method: type, body, headers, credentials } );
if ( respond.ok ) {
if ( dataType === 'json' ) {
data = await respond.json( );
} else if ( dataType === 'script' ) {
data = await respond.text( );
}
} else {
const message = { status: respond.status, statusText: respond.statusText };
throw new Error( JSON.stringify( message, null, ' ' ) );
}
return data;
};
sendAjax( )
.then( data => success( data ) )
.catch( reason => this.errorMsg( caption, reason ) );
}