Archiv verlassen und diese Seite im Standarddesign anzeigen : XMLHTTPRequest liefert zusätzlich Scriptcode nach einer anfrage über PHP
Hallo,
ich mach per AJAX einen Methodenaufruf über PHP. Im Responsetext ist auch das richtige Ergebnise. Allerdings wird noch zusätzlich der per, <script>-Tag eingefügte Code aus PHP, mit zurückgeliefert.
Beispiel-Code.
In PHP:
<?php
bla bla bla
<script type="text/javascript">
xyz
<script>
?>
Im responsetext steht dann z.b. zusätzlich
"<script type="text/javascript">
xyz
<script>"
Dabei habe ich das gar nicht abgerufen.
Kennt jemand das Problem. Kann man das unterstellen?
Bitte benutze [php]- oder [code]-Tags, wenn du hier Beispielcode postest!
Dabei habe ich das gar nicht abgerufen.
Du hast die komplette Ausgabe deines PHP-Scriptes abgerufen. Anders geht es gar nicht.
Kennt jemand das Problem. Kann man das unterstellen?
Ich weiß nicht, wem und warum du etwas unterstellen willst - aber dein vermeintliches „Problem“ ist ganz und gar hausgemacht.
Wenn du eine Ausgabe eines PHP-Scriptes nicht haben willst beim Abruf über HTTP - dann gewöhne dem PHP-Script ab, diese Ausgabe überhaupt zu machen.
So sieht ungefähr mein Aufruf aus.
var q = 'x=y';
new Ajax.Request('test.php',{method:'post',parameters:q,onComplete:update});
...
in PHP
<?php
...
<script type="text/javascript">
xyz
<script>
...
if(isset($_POST['x']))
{
echo 'Ausgabe';
}
...
?>
Im responsetext stehen dann
' Ausgabe <script type="text/javascript">
xyz
<script>'
Dabei müsste ich doch nur 'Ausgabe' zurückkriegen.
Entferne mal den Teil
<script type="text/javascript">
xyz
<script> aus der PHP-Datei. Erhälst du jetzt das gewünschte Ergebnis?
Genau das ist ja das problem.
Ich will es nicht entfernen.
Wenn ich es entferne klappt es.
Der Code muss in der PHP Datei bleiben.
AmicaNoctis 06-08-2010, 14:33 Dann beschreib dein Problem vernünftig, denn bis jetzt klingt es nach „Ich mag keine Marmelade, aber den Marmeladentoast will ich trotzdem essen, helft mir mal!“
Edit: Der vollständige Code könnte helfen, aber bitte benutz diesmal ausnahmsweise Code-Tags, wie es die Forenregeln verlangen.
Der Responsetext meiner AJAX.Request Anfrage, soll keinen Javascript Code enthalten. Und das ohne "Entfernen" des Javascript Codes aus der PHP Datei.
AmicaNoctis 06-08-2010, 14:45 Der Responsetext meiner AJAX.Request Anfrage, soll keinen Javascript Code enthalten. Und das ohne "Entfernen" des Javascript Codes aus der PHP Datei.
Immer noch nicht besser. Ich versuch's mal:
Du kannst die Ausgabe des (trotzdem enthaltenen) Codes natürlich auch von einer Bedingung (if) abhängig machen. Durch GET-Parameter oder noch besser über einen Accept-Header kannst du somit steuern ob das Script diesen Code ausgeben soll oder eben nicht.
Im responsetext stehen dann
' Ausgabe <script type="text/javascript">
xyz
<script>'
Dabei müsste ich doch nur 'Ausgabe' zurückkriegen.
Absoluter Blödsinn.
Alles, was in einer Scriptdatei steht, und nicht von irgendwelchen Bedingungen abhängig ist, landet in der Ausgabe - das ist schon immer so gewesen, und hat mit AJAX erst mal gar nichts zu tun.
Wenn du die Ausgabe des SCRIPT-Elementes unter bestimmten Umständen nicht haben willst - dann mache sie ebenfalls von einer Bedingung abhängig.
Es sind Javascript Methoden, die kann ich nicht von einer Bedingung abhängig machen.
Und wenn ja, wäre ich über einen Vorschlag dankbar.
AmicaNoctis 06-08-2010, 15:00 Für PHP sind das nichts anderes als Ausgabedaten und die kann man sehr wohl von einer Bedingung abhängig machen.
Aus welchem Grunde soll denn der JS-Code überhaupt drinbleiben, wenn du ihn ja doch nicht haben willst? Wird das Script auch noch von anderer Stelle her aufgerufen, wo der Code benötigt wird? Bis jetzt ergibt das alles keinen Sinn, weil du dich offenbar weigerst, das Problem nachvollziehbar zu bescheiben. Alles, was du bisher geliefert hast, waren vage Symptome aber nicht die genaueren Umstände.
Es sind Javascript Methoden, die kann ich nicht von einer Bedingung abhängig machen.
Komisch, den Text "Ausgabe" kannst du von einer Bedingung abhängig machen - aber andere Ausgaben des Scriptes nicht ...?
Und wenn ja, wäre ich über einen Vorschlag dankbar.
Geh bitte Grundlagen lernen.
Ich verstehe echt nicht, warum die Leute immer mit AJAX rumspielen müssen, obwohl sie weder die client- noch serverseitigen Grundlagen halbwegs drauf haben.
Ich brauch keine Grundlagen.
Du selbst bist nicht mal in der Lage das Problem zu verstehen.
Wie deutlich soll ich es noch beschreiben?
Ich habe ein Beispiel code geschrieben.
Mit Anfrage und Ergebnis.
Was gibt es da nichts zu verstehen.
Natürlich wird der JS-Code von der anderen Stelle her aufgerufen.
Warum sollte ich ihn denn sonst behalten wollen.
Alle Antworten hier sind selbstverständliche Überlegungen.
Ich habe auf eine Experten-Antwort gehofft.
Und das ist gewiss keine rumspielerei mit AJAX.
Kennt ihr überhaupt den responseText?
Ist schon gut.
Ich habe mein JS-Code in ein Template auslagert.
Ich brauch keine Grundlagen.
Du selbst bist nicht mal in der Lage das Problem zu verstehen.
Doch, bin ich - aber ich verstehe nicht, wo dein Problem liegt, es zu lösen.
Und bei der nächsten Antwort in dem Tonfall ist für dich erst mal Foren-Pause angesagt.
Ich kann nichts dafür, wenn du deinen Kram nicht gebacken kriegst, weil du nicht in der Lage bist, ein bisschen logisch nachzudenken.
*close*
AmicaNoctis 06-08-2010, 16:24 Ich brauch keine Grundlagen.
Jeder braucht die und die meisten hier haben sie sogar drauf.
Du selbst bist nicht mal in der Lage das Problem zu verstehen.
Das hat hier jeder verstanden, nur nicht den Grund, warum das ein Problem sein soll und warum du dich wunderst, dass der Code übertragen wird.
Wie deutlich soll ich es noch beschreiben?
So deutlich, dass man nicht herumrätseln muss, was du meinst.
Natürlich wird der JS-Code von der anderen Stelle her aufgerufen.
Warum sollte ich ihn denn sonst behalten wollen.
Das hättest du ja gleich mal dazusagen können. Das gehört zu einer Problembeschreibung dazu. Wir kennen dein Projekt ja nicht und wissen nicht was du vorhast, wenn du es nicht selbst mitteilst.
Alle Antworten hier sind selbstverständliche Überlegungen.
Natürlich, was soll man auch sonst zu dieser dürftig beschriebenen Thematik sagen?
Ich habe auf eine Experten-Antwort gehofft.
Die gibt's eigentlich nur auf Experten-Anfragen, aber bekommen hast du sie trotzdem.
Kennt ihr überhaupt den responseText?
Seit Jahren. Dass du dich – gemessen am PHP-Script – über dessen Inhalt wunderst, spricht dafür, dass du etwas nicht verstanden hast.
|
|