We Recommend

Pro JavaScript Techniques Pro JavaScript Techniques
Pro JavaScript Techniques is the ultimate JavaScript book for the modern web developer. It provides everything you need to know about modern JavaScript, and shows what JavaScript can do for your web sites. This book doesn't waste any time looking at things you already know, like basic syntax and structures.


Posted By

raws on 10/01/06


Tagged

ajax javascript


Versions (?)


Who likes this?

9 people have marked this snippet as a favorite

arcturus
postNuKe
leitmotiv
rmaltete
yonekawa
Hollow
spiralfunk
vali29
SpinZ


HTTP Request


Published in: JavaScript 


Generic global code for managing XMLHttpRequest objects.

  1. // ----------------------------------------
  2. // Wrapper function for constructing a request object.
  3. // Parameters:
  4. // reqType: The HTTP request type, such as GET or POST.
  5. // url: The URL of the server program.
  6. // asynch: Whether to send the request asynchronously or not.
  7. // ----------------------------------------
  8.  
  9. function httpRequest(reqType,url,asynch) {
  10.  
  11. // Mozilla-based browsers
  12. if (window.XMLHttpRequest) {
  13. request = new XMLHttpRequest();
  14. } else if (window.ActiveXObject) {
  15. request = new ActiveXObject("Msxml2.XMLHTTP");
  16. if (!request) {
  17. request = new ActiveXObject("Microsoft.XMLHTTP");
  18. }
  19. }
  20.  
  21. // Request could still be null if neither ActiveXObject
  22. // initialization succeeded
  23. if (request) {
  24. // If the reqType param is POST, then the fifth arg is the POSTed data
  25. if (reqType.toLowerCase() != "post") {
  26. initReq(reqType, url, asynch, respHandle);
  27. } else {
  28. // The POSTed data
  29. var args = arguments[4];
  30. if (args != null && args.length > 0) {
  31. initReq(reqType, url, asynch, respHandle, args);
  32. }
  33. }
  34. } else {
  35. alert("Your browser does not permit the use of all " +
  36. "of this application's features!");
  37. }
  38.  
  39. }
  40.  
  41. // ----------------------------------------
  42. // Initialize a request object that is already constructed
  43. // ----------------------------------------
  44.  
  45. function initReq(reqType, url, bool, respHandle) {
  46. try {
  47. // Specify the function that will handle the HTTP response
  48. request.onreadystatechange = handleResponse;
  49. request.open(reqType, url, bool);
  50. // If the reqType param is POST, then the
  51. // fifth argument to the function is the POSTed data
  52. if (reqType.toLowerCase() == "post") {
  53. // Set the Content-Type header for a POST request
  54. request.setRequestHeader("Content-Type", "application/x-ww-form-urlencoded; charset=UTF-8");
  55. request.send(arguments[4]);
  56. } else {
  57. request.send(null);
  58. }
  59. } catch (errv) {
  60. alert("The application cannot contact the server at the moment. " +
  61. "Please try again in a few seconds.\n" +
  62. "Error detail: " errv.message);
  63. }
  64. }

Report this snippet 

You need to login to post a comment.