docs: function (args) {
              var req = args.req;
              var handler = args.requestHandler;
              if (handler == null) {
                  handler = this.__getRequestHandler();
              }
  
              req.data = (req.data == null && req.method == "POST")
                      ? handler.prepareRequestBody(req.jsonData, req.requestObject)
                      : req.data;
              req.headers = handler.getRequestHeaders();
              if (req.requestObject.headers) {
                  req.headers = ariaUtilsJson.copy(req.headers, false);
                  ariaUtilsJson.inject(req.requestObject.headers, req.headers, false);
              }
  
              // call the server
              var senderObject = {
                  classpath : this.$classpath,
                  requestObject : req.requestObject,
                  requestData : req.jsonData,
  
                  // the following two properties can be used to communicate from the filters to the RequestMgr and bypass
                  // the handler:
                  responseData : null,
                  responseErrorData : null
              };
  
              var requestObject = {
                  sender : senderObject,
                  url : req.url,
                  async : (req.requestObject.async !== false),
                  method : req.method,
                  data : req.data,
                  headers : req.headers,
                  timeout : req.timeout,
                  callback : {
                      fn : this._onresponse,
                      onerror : this._onresponse,
                      scope : this,
                      args : {
                          requestObject : req.requestObject,
                          senderObject : senderObject,
                          cb : args.cb,
                          id : args.id,
                          session : args.session,
                          actionQueuing : args.actionQueuing,
                          requestHandler : handler
                      }
                  }
              };
              if (handler.expectedResponseType) {
                  requestObject.expectedResponseType = handler.expectedResponseType;
              }
              ariaCoreIO.asyncRequest(requestObject);
          }