I\'ve got an AJAX request that expects JSON in response.
But there\'s a possibility that what gets returns may not be JSON, but rather an HTML error page (unfortunat
If the response is JSON, a properly behaving application would set the Content-Type
to application/json.
So all you have to do, if the server is well-behaving, is to test if the Content-Type header in the response starts with application/json.
By chance, jQuery already does this by itself:
$.get('/foo', function(data, status, xhr, dataType) {
if ('json' === dataType) {
// Yay that's JSON !
// Yay jQuery has already parsed `data`
}
});
jQuery detects the dataType and passes it as 4th parameter of the callback function. If the dataType is JSON, it parsed the JSON string and parses the resulting value as first parameter of the callback.