Search code examples
jqueryxmlajaxjqxhr

responseType in $.ajax


$.ajax({
   type: "POST",
   url: "bla",
   xhrFields: { responseType: "document" },
   data: {},
   success: function(arg,arg2,request){
      console.log(request.responseXML)
   }
})

Why is it printing 'undefined'? How would I fix this?


Solution

  • Are you expecting a JSON return? What happens when you try:

    $.ajax({
      type: "POST",
      url: "bla",
      dataType: 'xml',
    }).done(function (response) {
       console.log(response);
    });
    

    If you look at jQuery's documentation, they outline how:

    The jQuery XMLHttpRequest (jqXHR) object returned by $.ajax() as of jQuery 1.5 is a superset of the browser's native XMLHttpRequest object. For example, it contains responseText and responseXML properties, as well as a getResponseHeader() method.

    The response variable therefore contains what you need. To see its structure, do a console.log() and go to the 'Console' tab in your Developer Tools (Chrome) or Firebug (Firefox).