PART II
Chapter 5: Developing an Ajax Library 183
Finally, the request is invoked by calling a private helper function _makeRequest(),
which will do the dirty work.
/* invoke the request */
AjaxTCR.comm._makeRequest(request);
Finally, the wrapper object is returned for local control by the user.
/* return object for local control */
return request;
Now the XHR specific details found in _makeRequest() are pretty similar to the
sendRequest() functions we have seen before. First, the XMLHttpRequest object is
created and any exceptions are addressed.
_makeRequest : function (request) {
/* make basic XHR */
request.xhr = AjaxTCR.comm._createXHR();
if (!request.xhr)
{ /* raise exception */
return;
Then, the standard open method is used.
/* open the request */
request.xhr.open(request.method, request.url, request.async);
Next, the appropriate headers are set in the case of posting data:
/* set header(s) for POST */
if (request.method.toUpperCase() == "POST")
{
request.xhr.setRequestHeader("Content-Type", request.requestContentType);
if (request.requestContentTransferEncoding != "")
request.xhr.setRequestHeader("Content-Transfer-Encoding",
request.requestContentTransferEncoding);
}
If specified, headers are set to avoid caching:
/* Prevent Caching if set */
if (request.preventCache)
request.xhr.setRequestHeader("If-Modified-Since",
"Wed, 15 Nov 1995 04:58:08 GMT");
Other headers are also set here, but we’ll skip these for the moment and move on to the
binding of callbacks to a private helper method _handleResponse() if the request is
asynchronous.
if (request.async)
{ /* bind the success callback */