Ajax $_POST an PHP datei mit relativem pfad
pahe
- javascript
0 hotti0 pahe
0 1UnitedPower0 pahe0 Der Martin0 pahe
Guten Abend
Ich hoffe ihr könnt mir helfen, ich verzweifel daran.
Ich übertrage Daten mit AJAX an eine PHP Datei. Dies Funktioniert auch, aber nur wenn in der AJAX Function die url direkt auf der Datei steht(save.php).
Wenn ich die Datei über einen relativen pfad (./modul/editor/save.php) ansteuer passiert nichts.
Kurz zum Aufbau.
Die index.php includiert die Datei ./modul/editor/editor.php
Im Ordner ./modul/editor/ liegt auch die PHP Datei save.php die von AJAX via POST angesteuert werden soll.
Dieses Script funktioniert(Wenn die Datei save.php im selben ordner liegt wie die index.php):
$.ajax({
type: "POST",
url: "save.php",
data: {image: dataUrl,bildname: dername}
}).done(function( respond ) {
console.log("Saved filename: "+respond);
});
}
Ich hätte aber gern das es auch mit einem relativen Pfad ("modul/editor/save.php") zur Datei funktioniert:
$.ajax({
type: "POST",
url: "modul/editor/save.php",
data: {image: dataUrl,bildname: dername}
}).done(function( respond ) {
console.log("Saved filename: "+respond);
});
}
Bin für jede Hilfe dankbar =)
hi,
Ich hätte aber gern das es auch mit einem relativen Pfad ("modul/editor/save.php") zur Datei funktioniert:
$.ajax({
type: "POST",
url: "modul/editor/save.php",
data: {image: dataUrl,bildname: dername}
}).done(function( respond ) {
console.log("Saved filename: "+respond);
});}
>
Mit relativen Pfaden ist das immer sone Sache, stehst Du am Bahnhof, ist die Kneipe ein Stückchen geradeaus, an der nächsten Ampel links rum und dann die zweite Tür rechts. Was machste, wenn Du an der Aptotheke bist!? Erst zum Bahnhof?
> Bin für jede Hilfe dankbar =)
Keine relativen Pfadangaben. Und lass weg, was URLs gemeinsam haben
http://example.com/modul/editor/save.php
"/modul/editor/save.php"
wäre eine solche Pfadangabe, die auf einunddemselben Server immer funktioniert.
Hotti
--
Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
Keine relativen Pfadangaben. Und lass weg, was URLs gemeinsam haben
http://example.com/modul/editor/save.php
"/modul/editor/save.php"
wäre eine solche Pfadangabe, die auf einunddemselben Server immer funktioniert.Hotti
Das Funktioniert leider nicht! Egal ob ich den absoluten Pfad oder relativen Pfad nehme oder die ganze URL, sobald da ein Ordner dabei ist will er nimmer. Es funktioniert nur mit "save.php"
Trotzdem danke, hast du noch einen anderen Lösungs ansatz?
Meine Herren!
Ich hätte aber gern das es auch mit einem relativen Pfad ("modul/editor/save.php") zur Datei funktioniert:
Das sollte meines Wissens nach auch geschehen. Hast du mal mit deinen Entwickler-Tools überprüft, welchen Status-Code der Response hat?
Ich könnte mir vorstellen, dass du zum Beispiel das base-Elemente im Kopfbereich deines HTML gesetzt hast und relative Pfade deshalb anders aufgelöst werden als von dir vermutet.
Meine Herren!
Ich hätte aber gern das es auch mit einem relativen Pfad ("modul/editor/save.php") zur Datei funktioniert:
Das sollte meines Wissens nach auch geschehen. Hast du mal mit deinen Entwickler-Tools überprüft, welchen Status-Code der Response hat?
Ich könnte mir vorstellen, dass du zum Beispiel das base-Elemente im Kopfbereich deines HTML gesetzt hast und relative Pfade deshalb anders aufgelöst werden als von dir vermutet.
Ich habe keine base-Element gesetzt. Habe dieses aber jetzt ergenzt:
<base href="http://localhost/mebuca/cms/system/backend/">
Im Ordner backend liegt die besagte index.php
Dies führt leider auch zu keiner Lösung des Problems.
In Firebug unter Netzwerk ist nach dem Absenden des Formulars auch erkennbar das er es an die Richtige Datei sendet und das die POST Vars auch nicht Leer sind.
Ich versteh die Welt nicht mehr...
Er habe danach auch nochmal die URL auf "save.php" umgestellt, um sicher zustellen das die PHP auch Funktioniert, und sie funktioniert.
Wenn du mir sagst welche Daten aus Firebug dir weiter helfen würden, dann sende ich dir diese.
Vielen Dank
Hallo,
Wenn du mir sagst welche Daten aus Firebug dir weiter helfen würden, dann sende ich dir diese.
der genaue (vollständige!) Pfad im Request zur ursprünglichen HTML-Ressource, und zum Vergleich der Pfad im Request der via AJAX angeforderten Ressource - letztere bitte zusammen mit dem HTTP-Status im Response-Header.
Ich habe den dumpfen Verdacht, die HTML-Ressource wird als /mebuca/cms/system/backend (ohne abschließenden Backslash) angefordert - und dann würden weitere abhängige Requests natürlich auf /mebuca/cms/system/ basieren.
So long,
Martin
der genaue (vollständige!) Pfad im Request zur ursprünglichen HTML-Ressource,
Ich habe den dumpfen Verdacht, die HTML-Ressource wird als /mebuca/cms/system/backend (ohne abschließenden Backslash) angefordert - und dann würden weitere abhängige Requests natürlich auf /mebuca/cms/system/ basieren.
So long,
Martin
Habe den Fehler gefunden.
Beim durchsuchen nach dem den sachen die du wolltest, habe ich gesehen das Firebug unter Netzwerk mir auch anzeigt was die PHP Datei zurück gibt.
Da ist mir mein Fehler aufgefallen. Ich habe fälschlicher weiße die save.php so geschrieben als wäre Sie includiert von der index.php (so wie die editor.php).
Dem entsprechend sind die Pfade alle so geschrieben als würde die save.php vom index.php verzeichniss aus Arbeiten.
Nach dem ich diesen Denkfehler behoben habe und die save.php jetzt die Pfade hat als würde sie im Verzeichniss (./modul/editor/save.php) liegen, funktioniert alles!
Wenn mit der save.php auf eine Bild das im Ordner der index.php liegt zugreifen wollte.
Bsp:
vorher: ./bild.jpg
nachher: ../../../bild.jpg
Vielen Dank, wieder was gelernt =) Wünsche euch noch einen schönen Abend!