Zunächst möchte ich Ihnen die Ordnerstruktur zeigen:Wie funktioniert Ajax aus verschiedenen Verzeichnissen?
public_html[]
|_ project_folder[]
|_another_folder[]
|_xml_folder[]
|_xmlfile.xml
|_ js_folder[]
|_javascriptfile.js
|_ file.html
|_ file2.html
Ich habe einige file.html und file2.html Last Verwendung jQuery Ajax auf Dokument laden. Ajax verwendet diesen Code:
$(document).ready(function()
{
$.ajax({
type: "GET",
url: "xml/xmlfile.xml",
dataType: "xml",
...
...
...
}
Diese funktioniert gut, wenn die HTML-Dateien im Stammverzeichnis der Dateien gefunden werden (nur die Art, wie sie sind jetzt)
Nun, wenn ich eine HTML-Datei auf ein bewegen Ordner (zB Datei2.html in einen anderen Ordner verschieben), das Laden der XML-Datei funktioniert nicht mehr. Nehme nicht an, dass ich die notwendigen src-Tags im HTML geändert habe, zB: von src \ "js/javascriptfile.js" nach src = \ "../ js/javascriptfile.js".
Was ich nicht geändert habe, ist die "URL" in der Javascript-Datei. Und jetzt wird das XML nicht geladen, weil es versucht, nach der XML-Datei in seinem eigenen Verzeichnis (another_folder/xml/xmlfile.xml) zu suchen, und nicht nach dem Stammverzeichnis, in dem es sich befindet.
Meine Frage ist, was sollte getan werden, um dieses Problem zu vermeiden?
ich Ihre Antwort habe versucht, und das Problem ist, dass ich wollte, dass die HTML-Dateien "nicht darauf achten", wo sie hingelegt werden, damit sie in das Verzeichnis gesetzt werden können, wie niedrig sie auch aus dem Dokumentenstamm sind (und manchmal werden es etwa 3-4 Ordner sein). Wie zum Abrufen der aktuellen URL, habe ich es auch versucht, aber wie erhalten Sie das Home-Verzeichnis der Datei, so dass es etwas geben würde, um die aktuelle URL zu vergleichen? zB: Die aktuelle Datei befindet sich in "public_html/project_folder/another_folder/another_sub_folder/file2.html" Wie bekommen Sie "project_folder von all dem?" Was, wenn die Datei 1Dir niedriger liegt? – Nikko