title: jquery $.ajax() and its success callback - where is it returning to?
body: <p><em><strong>Where does the jquery ajax success callback return to?</em></strong></p>
  
  <hr>
  
  <p>I have written a request method that makes an ajax call, detects if I have supplied a callback or returns the datanode of the response XML.</p>
  
  <p>Request Method:</p>
  
  <pre><code>function request(request, dontRefresh)
  {     
     var requestXML = composeRequestXML(request); 
     $.ajax({
        url: 'someProcessor.php',
        type: 'POST',
        cache: false,
        async: dontRefresh,
        timeout: 5000,
        data: "query="+requestXML,
        success: function(response)
        {
           //parses xml into a js object
           var responseObj = parseResponseXML(response);
  
           if(request.callback){
              request.callback(responseObj);
           } else {
              // responseObj.response[0].data[0] is the data 
              // node of the response Obj.
              // this is what i see being the problem - 
              // I DON'T KNOW WHERE THIS IS RETURNED TO!!
              return responseObj.response[0].data[0];
           }
        }
     });
  }
  </code></pre>
  
  <h2>This request would use the callback</h2>
  
  <pre><code>var requestObj = new Object();
      requestObj.callback = function(responseObj){someCallbackFunction(responseObj);};
      requestObj[0] = new Object();
      requestObj[0].module = "someModule";
      requestObj[0].action = "someModuleMethod";
  request(requestObj);
  //results are returned to the function someCallbackFunction()
  </code></pre>
  
  <h2>This is an example of what i'd like to accomplish</h2>
  
  <pre><code>var requestObj = new Object();
      requestObj[0] = new Object();
      requestObj[0].module = "userManager";
      requestObj[0].action = "GET_USERID";
  
  var userId = request(requestObj, false); //make the request asynchronous
  </code></pre>
  
  <p>I've tried returning the <code>$.ajax()</code> function itself... like so:</p>
  
  <pre><code>function request(request, dontRefresh){
     return $.ajax({/*...options...*/);
  }
  </code></pre>
  
  <p>But this bypasses the xml parser I have developed and returns the XHR object.  I would like to use this kind of technique to register variables.  So essentially...</p>
  
  <p>I will be using this method with a callback or setting a variable with it.</p>