Я хочу загрузить файл json-stringified в моем javascript. Javascript находится в html-файле, который загружается из локальной файловой системы. неЗагрузите файл 'server-side' с XMLHttpRequest в локальный файл html
Я попытался с помощью следующего кода:
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");
}
};
Но пожары OnLoad событие только один раз, со статусом = 0, то больше не происходит.
Я попытался использовать как полный путь к файлу, так и локальный путь к файлу, например «/files/the_file.txt».
Похоже, проблема связана с тем, что я пытаюсь запустить файл html локально. Я не хочу настраивать локальный сервер, как я видел в подобных сообщениях здесь.
Кто-нибудь есть решение этой проблемы?
EDIT:
Это не то, что я хочу, но это могло бы служить, чтобы дать пример того, как я почти хочу. В этом примере пользователь может выбрать файл, и мой скрипт теперь может получить доступ к содержимому выбранного файла.
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);
}
Это также работает с локальной HTML-файл. (Нет локального сервера)
Мой вопрос стоит; Как читать файлы (файлы) без взаимодействия с пользователем? Файлы находятся в подпапке, где находится html-файл. Я могу без проблем загружать и показывать изображение из той же подпапки, с тегом <img>
. .. Так почему так сложно загрузить текстовый файл?
Благодарим вас за ответ Quentin. Моя главная проблема здесь (с самого начала) заключалась в том, что я полагал, что браузер может видеть папку и подпапки html-файла как «локальный сервер», т. Е. В обход проверок безопасности. Теперь я вижу, насколько легко хакеру было бы рассказать кому-нибудь «просто поместить этот файл на свой рабочий стол и запустить его» .. :) – Snorvarg
Я отмечаю это как ответ, но хотел бы упомянуть, что я думаю, что это проблема в любом случае, довольно сложно сделать загружаемое «приложение» в html + javascript в настоящее время ... – Snorvarg