Это не 100%, но сервер, вероятно, установил ответный заголовок: Content-Type: application/json
. Таким образом, вы можете попробовать проверить это:
$.ajax({
url: 'url',
success: function(data, textStatus, xhr){
var spoiler = xhr.getResponseHeader('Content-Type');
spoiler == 'application/json' ? alert('JSON received') : alert('Not JSON received');
}
});
Конечно, это работает, только если ваш сервер правильно устанавливает свои заголовки.
Еще один способ - попытаться создать функцию и перехватить возможные ошибки.
try {
x = ( new Function('return ' + received_data) )();
}
catch (e) {
console.log('Its not a JSON data... or its invalid.');
}