jquery how to check response type for ajax call
How can I determine the response type of ajax call in Jquery? At times, the server sends json response and at times it sends only the html for display purposes. Right now I am using
if(response.indexOf('Error'))
//popup error message
else
response.username
response.address
You can try it like:
$.ajax({
type: "POST",
url: "your url goes here",
data: "data to be sent",
success: function(response, status, xhr){
var ct = xhr.getResponseHeader("content-type") || "";
if (ct.indexOf('html') > -1) {
//do something
}
if (ct.indexOf('json') > -1) {
// handle json here
}
}
});
Basically it is also using indexOf but it seems more reliable.
You can simply use javascript's easy method to check the type
i.e.
if(typeof response=="object")
{
// Response is javascript object
}
else
{
// Response is HTML
}
If you use this method you don't have to write 2 extra parameter in the success callback.