Hallo
Ich korrigiere mein Vorposting.
var request = new XMLHttpRequest(); request.open('POST','a10.pdf', true);
Du stellst einen Anfrage an eine PDF-Datei, die auf dem Server liegt. Auch wenn PDF aktive Elemente, also Programmcode haben kann, wird dieses PDF mit an Sicherheit grenzender Wahrscheinlichkeit mit deinem Aufruf keinen Code ausführen und damit auch nicht die von dir ausgewerteten Rückgabewerte erzeugen. Damit langet deine vom Status abhängige Verzweigung immer im Else-Zweig.
Also, wie Linuchs schon schrieb, musst du zuerst einmal eine vollständige URL angeben. Zweitens muss die Anfrage, wie Linuchs ebenfalls, wenn auch etwas verklausuliert, schon schrieb, auch gesendet werden. Ich habe mir mal mit Hilfe der MDN so ein Beispiel zusammengeschraubt.
function reqListener () {
console.log(this.responseText);
}
var oReq = new XMLHttpRequest();
oReq.addEventListener("load", reqListener);
oReq.open("GET", "http://www.example.org/daten/irgendein.pdf");
oReq.send();
Wenn du das tust und einmal in eine Konsole (z.B. die von Firebug) schaust, stellst du fest, dass mit dieser Anfrage dein Status aber das Dokument angefordert und auch ausgeliefert wird.
if (oReq.status >= 200 && oReq.status < 300) {
alert('irgendein.pdf vorhanden');
} else {
alert('irgendein.pdf NICHT vorhanden');
}
Ich erhalte mit meinem Beispiel die Meldung 'irgendein.pdf vorhanden' und direkt im Anschluss wird mir auch das PDF übertragen. Das landet allerdings, weil ich damit nichts anfange, im Nirwana. Um nur das Vorhandensein einer Datei abzufragen, eignet sich immer noch der Tip:
Du brauchst auf dem Server ein ausführbares Skript …
Mit einem solchen Skript kannst du genau steuern, was passiert und was zurück gegeben wird.
var tmp=new Image; tmp.src='http://xyz.de/test/a10.pdf'; if(tmp.complete) alert("Datei vorhanden"); else alert("Datei nicht vorhanden");
Das ist etwas ganz anderes. Du erzeugst hier ein neues Bild und befüllst es dann mit einer Serverressource als Nutzdaten.
… nur, dass das mit einer PDF-Datei natürlich nicht funktioniert. Das ist halt kein Bild.
Tschö, Auge
Wo wir Mängel selbst aufdecken, kann sich kein Gegner einnisten.
Wolfgang Schneidewind *prust*