Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Доступ к файлам (https://javascript.ru/forum/events/45354-dostup-k-fajjlam.html)

111 24.02.2014 23:56

Доступ к файлам
 
Здравствуйте.
Подскажите пожалуйста, какие механизмы есть в JS для доступа к файлам на сервере. Конкретно, как в innerHTML засунуть то, что берется из файла, имя которого - переменная String-типа.
Спасибо.

danik.js 25.02.2014 01:35

Цитата:

Сообщение от 111
на сервере

Да хоть на другой планете. Объект XMLHttpRequest позволяет сделать любой http-запрос хоть на сервер хоть на луну и получить бинарный/текстовый ответ.

В контексте HTTP нет понятия "файл". Есть понятие "ресурс, находящийся по некоторому URL'у". Это может быть и файл, и генерируемое скриптом содержимое - что угодно короче.

kostyanet 25.02.2014 04:42

На клиенте аякс отгружает file_name, на сервере скрипт находит и выдает: readfile(file_name);

Потребуется еще выдать несколько правильных заголовков для полного счастья.

kotamirov 28.02.2014 14:56

function ajax(url){
var send_data='a=123&b=231$c=232'; //sender data in string type
var request; 
	if(window.XMLHttpRequest){ 
    request = new XMLHttpRequest(); 
 	}else if(window.ActiveXObject){ 
      request = new ActiveXObject("Microsoft.XMLHTTP");  
  		}else{ 
     	return; 
  		}	
request.onreadystatechange = function(){
		switch (request.readyState){
//case 1,2,3for event while request sent on server
			case 1: document.getElementById('input_rubrics').innerHTML='<div class="loading_processing"><div></div></div>';break;
			case 2: document.getElementById('input_rubrics').innerHTML='<div class="loading_processing"><div></div></div>';break;
			case 3: document.getElementById('input_rubrics').innerHTML='<div class="loading_processing"><div></div></div>';break;
		case 4:{                   
			if(request.status==200){  
document.getElementById('input_rubrics').innerHTML=request.responseText;
}else if(request.status==404){
				alert("Ошибка: запрашиваемый скрипт не найден!");
				}
				else alert("Ошибка: сервер вернул статус: "+ request.status);
			break;
			}
		}            
	} 

request.open("POST",url, true);
		request.setRequestHeader('Content-type',"application/x-www-form-urlencoded");
		request.send(send_data); 
};


Часовой пояс GMT +3, время: 16:06.