Well, if you are using jQuery and you specify the dataType
property of the $.ajax()
call to json
then jQuery will try to parse the JSON, and if it isn't JSON should call the error()
callback.
$.ajax({
url: '/my/script.ext',
dataType: 'json',
success: function(data, textStatus, jqXHR) { /*YAYE!!*/ },
error: function(jqXHR, textStatus, errorThrown) { /*AWWW... JSON parse error*/ }
});
EDIT
For anyone not using jQuery that lands here, the basic idea is to try and parse it as json and catch the error:
var data = 'some_data';
try {
data = JSON.parse(data);
} catch(e) {
//JSON parse error, this is not json (or JSON isn't in your browser)
}
//act here on the the parsed object in `data` (so it was json).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…