Ich möchte eine JSON-Stringed-Datei in meinem Javascript laden. Das Javascript befindet sich in einer HTML-Datei, die ich von meinem lokalen Dateisystem geladen habe.Laden Sie eine 'serverseitige' Datei mit XMLHttpRequest in lokale HTML-Datei
Ich habe mit dem folgenden Code versucht:
var xhr = new XMLHttpRequest();
xhr.open('GET', fileName, true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
if (this.status == 200) {
// get binary data as a response
var blob = this.response;
alert("Yo");
}
};
Aber das onload-Ereignis ausgelöst werden nur einmal, mit dem Status = 0, dann nicht mehr passiert.
Ich habe versucht, sowohl einen vollständigen Pfad zu der Datei als auch einen lokalen Dateipfad wie "/files/the_file.txt" zu verwenden.
Es sieht aus wie das Problem mit mir verwandt ist, versuchen, die HTML-Datei lokal auszuführen. Ich möchte keinen lokalen Server einrichten, wie ich in ähnlichen Beiträgen hier bei so vorgeschlagen habe.
Jemand da draußen mit einer Lösung für dieses Problem?
EDIT:
Das ist nicht das, was ich will, aber dies könnte dazu dienen, ein Beispiel zu geben, wie ich es fast will. In diesem Beispiel kann der Benutzer eine Datei auswählen und mein Skript kann nun auf den Inhalt der ausgewählten Datei zugreifen.
HTML:
<input type="file" id="FancyInputField" onchange="doIt();">
Javascript:
function doIt(){
var selectedFile = document.getElementById('FancyInputField').files[0];
reader = new FileReader();
reader.onload = function (e) {
var output = reader.result;
var daObject = JSON.parse(output);
}
reader.readAsText(selectedFile);
}
Dies auch mit einer lokalen HTML-Datei funktioniert. (Kein lokaler Server)
Meine Frage steht; Wie lese ich die Datei (en) ohne Benutzerinteraktion? Die Dateien befinden sich in einem Unterordner, in dem sich die HTML-Datei befindet. Ich kann problemlos laden und ein Bild aus dem gleichen Unterordner anzeigen, mit einem Tag. .. Warum ist es so schwer eine Textdatei zu laden?
Vielen Dank für die Antwort Quentin. Mein Hauptproblem hier (von Anfang an) war, dass ich glaubte, dass der Browser den Ordner und die Unterordner der HTML-Datei als einen "lokalen Server" sehen könnte, d. H. Die Sicherheitsüberprüfungen umgehen würde. Ich sehe jetzt, wie leicht es für einen Hacker sein würde, irgendjemandem zu sagen: "leg einfach diese Datei auf deinen Desktop und führe sie aus". :) – Snorvarg
Ich kenn das als die Antwort, möchte aber erwähnen, dass ich denke, das ist ein Ausgabe sowieso, es ist ziemlich schwierig, eine herunterladbare "Anwendung" in HTML + Javascript heutzutage zu machen ... – Snorvarg