pahe: Ajax $_POST an PHP datei mit relativem pfad

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 =)

  1. 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.
    
    1. 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?

  2. 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.

    1. 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

      1. 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

        --
        Time's an illusion. Lunchtime doubly so.
          (Douglas Adams, "The Hitchhiker's Guide To The Galaxy")
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. 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!