Ce n'est pas 100% mais le serveur a probablement défini l'en-tête responce: Content-Type: application/json
. Donc, vous pouvez essayer de le vérifier:
$.ajax({
url: 'url',
success: function(data, textStatus, xhr){
var spoiler = xhr.getResponseHeader('Content-Type');
spoiler == 'application/json' ? alert('JSON received') : alert('Not JSON received');
}
});
Bien sûr, cela ne fonctionnait que si votre serveur règle correctement ses en-têtes.
Un moyen de plus: essayez de créer une fonction et de détecter les erreurs que vous pourriez avoir.
try {
x = (new Function('return ' + received_data))();
}
catch (e) {
console.log('Its not a JSON data... or its invalid.');
}
Ceci est vraiment plus un problème de contrat de données que toute autre chose. Les données que vous récupérez à partir d'un appel à $ .get doivent être fiables. –
JSON * est une chaîne de caractères. – user113716
@Patrick dw pas vraiment, quand je fais result.substr() et le résultat est un résultat json, j'obtiens erreur que substr n'est pas une fonction (donc c'est un objet) – Omu