Leser: 1
|< 1 2 >| | 20 Einträge, 2 Seiten |
Froschpopo+2007-11-19 14:37:14--
Aber genau hier kommt das Problem mit der asynchronen Arbeitsweise, nämlich dass die aufrufender Funktion nicht wartet, bis Ajaxfunktion den Status zurückgibt.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
function AjaxRequest(adresse, id) {
var req = null;
try{
req = new XMLHttpRequest();
} catch (ms){
try{
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch (nonms){
try{
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed){
req = null;
}
}
}
if (req == null)
alert("Error creating request object!");
req.open("GET", adresse, true);
req.onreadystatechange = function() {
switch(req.readyState) {
case 4:
if(req.status!=200) {
alert("Fehler:"+req.status);
}else{
document.getElementById(id).innerHTML = req.responseText;
}
break;
default:
return false;
break;
}
};
req.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
req.send(null);
}
QuoteWenn du per JS prüfst, ob jemand die Seite sehen darf, dann kann das übergangen werden.Das könnte z.B. so aussehen:
Angenommen die Zielseite (adresse) darf nur von authorisierten Usern ausgeführt werden. Ob jemand authorisiert ist, wird aber erst bei adresse ermittelt. Das Callback wäre dann 1 oder 0.
Wie kann ich jetzt in AjaxRequest ein alert() ausgeben, wenn das Ergebnis 0 ist?
Froschpopo+2007-11-19 14:53:59--Ein "return 0" hab ich mir ja mittlerweile schon fast abgeschminkt. Glaub sowas ist echt nicht möglich bei asynchroner arbeitsweise.
Was ja noch cooler wäre, wenn ich einfach "forbidden" als HTTP-Status zurückliefere, aber ich befürchte hier Browser-Probleme.
|< 1 2 >| | 20 Einträge, 2 Seiten |