Ajax-Request
heinetz
- javascript
0 bleicher0 ChrisB0 Ork vom Mork
Hallo Forum,
ich weiss ja, dass ihr hier nicht das jquery-Forum seid, aber ich glaube, die Frage bezieht sich auch eher grundsätzlich auf Ajax.
Der Code:
---------
$.ajax (
{
type: "POST",
url: "my_012.create.php",
data: null,
dataType: "json",
success: function (req)
{alert("success"+req);
createdNodeId = data.nodeId;
},
error: function (req, status, error)
{
alert("error");
}
}
);
Mein PHP-Script wird aufgerufen. Soviel ist sicher. Die beiden Parameter 'success' und 'error' verstehe ich, glaube ich, allerdings nicht ganz richtig. Was löst 'success' aus und was 'error'? Ich lasse mein PHP-Skript am Ende etwas ausgeben:
echo true; -> success
echo false; -> success
echo 1; -> success
echo 0; -> success
echo "quatsch"; -> error
Wie ist das zu deuten ?
danke fuer tipps und
beste gruesse,
heinetz
Grüße,
error: function (req, status, error)
{
alert("error");
}
entweder du benutzst ein debugging-tool wie Dragonfly, oder du lässt zumindest noch Status und error ausgeben - könnte auch brauchbare Infos enthalten.
Dragonfly ist aber echt empfehlenswert - da kannst du das gaze steh-by-step ausführen lassen und die werte beobachten
MFG
bleicher
Hi,
$.ajax (
{
type: "POST",
url: "my_012.create.php",
data: null,
dataType: "json",
success: function (req)
{alert("success"+req);
createdNodeId = data.nodeId;
},
error: function (req, status, error)
{
alert("error");
}
}
);
>
> Mein PHP-Script wird aufgerufen. Soviel ist sicher. Die beiden Parameter 'success' und 'error' verstehe ich, glaube ich, allerdings nicht ganz richtig. Was löst 'success' aus und was 'error'?
Das steht doch in der Doku - welches Verständnisproblem hast du?
> Ich lasse mein PHP-Skript am Ende etwas ausgeben:
>
> echo true; -> success
> echo false; -> success
> echo 1; -> success
> echo 0; -> success
> echo "quatsch"; -> error
>
> Wie ist das zu deuten ?
In Hinblick auf obiges - gar nicht.
Das ajax-Objekt interessiert sich nicht dafür, \*was\* dein Script ausgibt - sondern mit welchem Status es den HTTP-Request beantwortet.
Wenn du in deinem PHP-Script nichts weiter als Textausgabe machst, wird das im Normalfall immer 200 OK sein.
MfG ChrisB
--
“Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
$.ajax (
dataType: "json",
error: function (req, status, error)
{
alert("error");
}
}
Mein PHP-Script wird aufgerufen. Soviel ist sicher. Die beiden Parameter 'success' und 'error' verstehe ich, glaube ich, allerdings nicht ganz richtig. Was löst 'success' aus und was 'error'?
Grundsätzlich hast du anscheinend schonmal den Fehler begangen, dass, was die Funktionen dir liefern, nicht zu beachten.
» error(XMLHttpRequest, textStatus, errorThrown)
»
» A function to be called if the request fails. The function is passed
» three arguments: The XMLHttpRequest object, a string describing the type
» of error that occurred and an optional exception object, if one occurred.
» Possible values for the second argument (besides null) are "timeout",
» "error", "notmodified" and "parsererror".
Speziell das Argument textStatus hätte dir vermutlich schon etwas weitergeholfen.
Ich lasse mein PHP-Skript am Ende etwas ausgeben:
echo true; -> success
echo false; -> success
echo 1; -> success
echo 0; -> success
echo "quatsch"; -> errorWie ist das zu deuten?
So, wie es in der Anleitung steht:
» dataType:
» "json": Evaluates the response as JSON and returns a JavaScript object.
» In jQuery 1.4 the JSON data is parsed in a strict manner; any malformed
» JSON is rejected and a parse error is thrown.
Beachte den Nebensatz am Ende. "quatsch" ist mit Sicherheit kein gültiges JSON-Format – womit ich dann wieder beim textStatus-Argument der error-Funktion bin, dort wird dann sicherlich, wie in der Anleitung angekündigt, "parseerror" stehen.