Linuchs: requestObject mit variablem Namen erzeugen

Beitrag lesen

Moin,

ich brauche zahlreiche requestObjecte für Ajax. Damit sie sich nicht gegenseitig stören, sollen sie verschiedene Namwen haben, aber mit einer zentralen Funktion erzeugt werden.

Wie übergebe ich der Funktion den gewünschten Namen? So geht's nicht, das Object ist anschließend undefined:

function makeRequestObject( requestName ) {
  alert( "hier makeRequestObject (" +requestName +") in standard.js" );
  if (window.XMLHttpRequest) {
    requestName = new XMLHttpRequest(); // Mozilla, Safari, Opera
  } else if (window.ActiveXObject) {
    try {
      requestName = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
    }
    catch (e) {
      try {
        requestName = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
      }
      catch (e) {}
    }
  }
  // überprüfen, ob Request erzeugt wurde
  if (!requestName) {
    alert("Kann keine XMLHTTP-Instanz fuer " +requestName +" erzeugen");
  }
}
...
var p510_request; makeRequestObject( p510_request ); // makeRequestObject => in standard.js

Mache ich es so:

var p510_request = new Object();
makeRequestObject( p510_request ); // makeRequestObject => in standard.js
var TID = 0;
function holeVeranstaltung() {
  // TID ist vorhandene Veranstaltung, nicht erneut senden
  var url = "500/p510lm.php?TID=" +TID +"&lg=[lg]";
  alert( url );
  p510_request.open('post', url, true);            // Request öffnen
  p510_request.send(null);                         // Request senden
  p510_request.onreadystatechange = zeigeVeranstaltung; // Request auswerten
}

kommt die Meldung "TypeError: p510_request.open is not a function"

Linuchs