Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.10.2013, 05:37
Интересующийся
Отправить личное сообщение для EvgLuch Посмотреть профиль Найти все сообщения от EvgLuch
 
Регистрация: 30.10.2013
Сообщений: 24

json-данные с другого диска не загружаются в html-файл
Доброго времени суток всем!
Возникла проблема.
Есть html таблица с ячейками и привязанными к ним id. По этим ячейкам нужно "раскидать" соответствующие данные, которые располагаются в файле формата json. При этом данные в файле json меняются раз в 1 секунду и файл с json-данными на сервере располагается на виртуальном диске Т, а html-таблица, скрипт и прочее - в папке root на локальном диске D. Я использую для динамической загрузки этих данных ajax от jQuery. Код скрипта такой:


$(document).ready(function() {

getJSON();
setInterval(getJSON, 1000);
});

function getJSON() {
$.getJSON( "T:\WEB\__data.XBO.json", function( data ) {
$.each( data, function( key, val ) {
$.each(val, function(k, v) {
$('#' + key + '-' + k).addClass('alert-' + v.alert).text(v.value);
});
});
});
}

Если разместить json-файл на локальный диск D в папку root и указать в скрипте соответствующий путь к нему, то скрипт успешно срабатывает. Но когда я указываю путь вне папки root - на виртуальный диск T, либо на локальный диск C, либо локальный диск D (но вне папки root), то скрипт не срабатывает.
Пользуюсь хромом. В консоле браузера вижу ошибку:

XMLHttpRequest cannot load file:///T:/WEB__data.XBO.json. Cross origin requests are only supported for HTTP.

Пробовал в других браузерах: IE, Firefox - аналогично.
Подскажите, в чём может быть проблема и как её можно решить?

Последний раз редактировалось EvgLuch, 30.10.2013 в 05:55.
Ответить с цитированием
  #2 (permalink)  
Старый 30.10.2013, 05:46
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

EvgLuch,
Наверно хост привязан к начальному размещению html-файла
Пробуйте переместить html-файл в корень диска с json (ну или в ту же папку, либо в родительскую
Ответить с цитированием
  #3 (permalink)  
Старый 30.10.2013, 07:51
Интересующийся
Отправить личное сообщение для EvgLuch Посмотреть профиль Найти все сообщения от EvgLuch
 
Регистрация: 30.10.2013
Сообщений: 24

Проблема в том, что диск с json не входит в диапазон Апатча... Диск виртуальный и размер его - 100 мб. Это сделано для того, что данные в json переписываются каждую секунду и если хранить этот json-файл на жёстком диске, то на этом жёстком через некоторое время "протрётся дырка" ))) Поэтому решено сделать поток данных в json-файле в оперативной памяти - на виртуальном диске. Можно разместить в этом виртуальном диске index.html, файл со скриптом, библиотеку jQuery и style.css, но при вводе адреса страницы браузер будет всё равно ссылаться на html в папке root локального диска D. Возможно тогда как-то поменять путь на html из папки root диска D на html из виртуального диска Т? И как? В настройках апатча? Может быть, в фале httpd.conf?

Последний раз редактировалось EvgLuch, 30.10.2013 в 08:17.
Ответить с цитированием
  #4 (permalink)  
Старый 30.10.2013, 09:02
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

А если просто сделать символическую ссылку? Я правда не уверен что апач ее будет резолвить (возможно это настраивается). Это как простейший вариант. А так уверен что можно апач настроить так как требуется (тут не подскажу).
Как костыль - разместить скрипт (php к примеру), который будет считывать нужный файл и выдавать ответ.

Также хром можно запустить со специальным агрументом, который разрешит локальный кросс-запрос (гугли по своей ошибке - найдешь решение)
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 30.10.2013, 09:27
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

EvgLuch,
1. поискать в инете драйвера, подключающие виртуальный диск как папку к текущему root

2.На счет дырки - один фиг, при каждой смене контента в HTML -кеш вашего HTML файла перезаписывается, а поскольку наверняка как-то изменяется соль в ссылке на файл скрипта с json, то кеш перезаписывается с той же скоростью и про дырку раз в секунду - всё это чушь - если конечно json не гигабайтный. В нормальной машине ежесекундно обновляется от 30 до 400 файлов, ксать сама операционка изначально подключает дисковое пространство для кеша в несколько гигабайт, и можно посмотреть динамику его использования, там речь явно не о секундах а о миллисекундах

3. Наверняка есть PHP скрипты проксирования - имитации удаленной загрузки, наподобие инет-подгрузки, а не локального хоста
Ответить с цитированием
  #6 (permalink)  
Старый 31.10.2013, 09:39
Интересующийся
Отправить личное сообщение для EvgLuch Посмотреть профиль Найти все сообщения от EvgLuch
 
Регистрация: 30.10.2013
Сообщений: 24

Решил проблему! В той же папке, где html-документ, скрипт, css и т.д. создал файл php со следующим простым скриптом:

<?php
$data = file_get_contents ('T:\WEB\_data.XBO.json');
echo $data;
?>

где 'T:\WEB\_data.XBO.json' - путь к тому самому json файлу, находящемуся на виртуальном диске, который не хотел грузить напрямую js скрипт.

А в скрипте js в getJson указал путь на этот php файл:

$(document).ready(function() {

getJSON();
setInterval(getJSON, 1000);
});

function getJSON() {
$.getJSON( "ajax.php", function( data ) {
$.each( data, function( key, val ) {
$.each(val, function(k, v) {
$('#' + key + '-' + k).addClass('alert-' + v.alert).text(v.value);
});
});
});
}

Для php нет таких проблем, как привязанность хоста.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как с помощью javascript взять данные из одного файла html и закинуть в другой? rusik Общие вопросы Javascript 10 08.08.2016 12:11
ajax $.post вместо json проблема данные не приходят Sadist_dead AJAX и COMET 2 12.07.2012 17:59
json данные не грузятся в windows XP но грузятся в w7 rustamaha Элементы интерфейса 2 28.11.2011 12:35
Очень нужно.. Отправка HTML куски в JSON от сервера используя Ajax bivnikus jQuery 8 26.10.2010 23:54
Загрузка внешнего html файл на страницу GRean (X)HTML/CSS 3 26.04.2010 14:16