Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> jquery .ajax не все браузеры открывают файл, + в IE и Firefox, - в Chrome и Opera 
V
    Опции темы
EgoBrain
Дата 6.3.2013, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: нет
Всего: 2



Взял простой пример открытия файла спомощью jqeury .ajax, в последствии собираюсь парсить xml. Проблема в том что данный скрипт работает не во всех браузерах, только в 2 из 4 опробованных (в IE и Firefox). Файл пробовал получать и с жесткого диска и с удаленного сервера.. В чем может быть проблема?

Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title></title>

<style> 
.main{
width:1000px;
margin:0 auto;
height:130px;
}
 
.book{
width:208px;
float:left;
margin:10px;
border:1px #dedede solid;
padding:5px;
display:none;
}

.title{
margin-bottom:6px;}
 
.description{font-size:11px; font-family:Geneva, Arial, Helvetica, sans-serif;}

.date{font-size:10px; color:#999; margin-top:4px;}

.loader{
height:11px;
}

</style> 

</head>
<body>

<div class="main">
<div align="center" class="loader"><img src="loader.gif" id="load" width="16" height="11" align="absmiddle"/></div>
</div>

<div class="clear"></div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
    $.ajax({
        type: "GET",
        url: "books.xml",
        dataType: "xml",
        success: xmlParser
    });
});

function xmlParser(xml) {

    $('#load').fadeOut();

    $(xml).find("Book").each(function () {

    $(".main").append('<div class="book"><div class="title">' + $(this).find("Title").text() + '</div><div class="description">' + $(this).find("Description").text() + '</div><div class="date">Published ' + $(this).find("Date").text() + '</div></div>');
    $(".book").fadeIn(1000);

    });
}
</body>
</html>


Это сообщение отредактировал(а) EgoBrain - 6.3.2013, 01:25

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  demo.rar 1,97 Kb
PM MAIL ICQ Skype   Вверх
Arantir
Дата 6.3.2013, 03:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 3
Всего: 55



На счет "с диска" - проблема сразу понятна. Chrome, к примеру, даже в локальном файле другой файл не откроет. Выдаст что-то вроде "протокол должен быть http, а не file".

И с удаленным сервером так же, скорее всего. По умолчанию нельзя "аяксить" другие сайты.

Вообще, сайты на локальном компьютере обычно делают с помощью локального веб-сервера, а не простым открыванием в браузере. При локальном сервере все работает точно так же, как на любом удаленном сайте.


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
EgoBrain
Дата 6.3.2013, 03:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: нет
Всего: 2



Цитата(Arantir @ 6.3.2013,  03:26)
И с удаленным сервером так же, скорее всего. По умолчанию нельзя "аяксить" другие сайты.

Вообще, сайты на локальном компьютере обычно делают с помощью локального веб-сервера, а не простым открыванием в браузере. При локальном сервере все работает точно так же, как на любом удаленном сайте.

Что-то я не совсем понял, какое отношение к вопросу имеют эти высказывания? Прчем здесь "аяксить" другие сайты и разработка с локальным вебсервером..  smile 
Мне необходимо открыть и распарсить xml файл, получить из него данные и нужным образом ими распорядиться.
PM MAIL ICQ Skype   Вверх
Arantir
Дата 6.3.2013, 03:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 3
Всего: 55



Цитата(EgoBrain @  6.3.2013,  02:33 Найти цитируемый пост)
Мне необходимо открыть и распарсить xml файл, получить из него данные и нужным образом ими распорядиться. 
Тогда какое отношение к вашей задаче имеет html и ajax? Напишите программу на C++ и не парьтесь... Но зачем-то вы выбрали способ из первого поста. Именно по этому мой ответ таков, какой он есть.

Веб-технологии предназначены только для веба и чреваты излишними проблемами при ином применении.
Как я уже объяснил - нельзя открыть файлы пользователя и файлы другого домена. Это политика безопасности браузеров. FF, в частности, открыл файл только потому, что html-файл тоже локальный.
Если вы создаете веб-сайт, то вам следует установить локальный сервер для корректной отладки скриптов, каковой текущий ваш способ не является.
Если вам не нужен веб-сайт, а нужна локальная программа, то вам следует выбрать другие технологии для реализации поставленной задачи.

Это сообщение отредактировал(а) Arantir - 6.3.2013, 03:55


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
EgoBrain
Дата 6.3.2013, 04:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 23.3.2008
Где: Комната

Репутация: нет
Всего: 2



Все ограничения связанные с обработкой на стороне клиента (в браузере) резонны и ясны, поэтому решил реализовывать обработку на стороне сервера и просто передавать туда файл.
Я лишь хотел предоставить удобный функционал пользвателю, дабы он смог "не отходя от кассы" посмотреть распарсенные данные из файла и при необходимости внести правки, ввиду открывшихся обстоятельств от данной затеи откзываюсь.

Цитата(Arantir)
Если вы создаете веб-сайт, то вам следует установить локальный сервер для корректной отладки скриптов, каковой текущий ваш способ не является.
Если вам не нужен веб-сайт, а нужна локальная программа, то вам следует выбрать другие технологии для реализации поставленной задачи.

Arantir, если я отлаживаю javascript, который не производит обмен данными с сервером, зачем мне веб сервер?
PM MAIL ICQ Skype   Вверх
Arantir
Дата 6.3.2013, 05:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


Профиль
Группа: Участник
Сообщений: 960
Регистрация: 18.11.2012

Репутация: 3
Всего: 55



Цитата(EgoBrain @  6.3.2013,  03:39 Найти цитируемый пост)
Arantir, если я отлаживаю javascript, который не производит обмен данными с сервером, зачем мне веб сервер? 

Так в том то и дело, что javascript не предназначен для работы с пользовательскими/локальными файлами. Технологии веба - это как раз наоборот - средства для работы с удаленными файлами. В частности, ради безопасности, с файлами в пределах одного домена.

Если файл должен располагаться на сервере, а пользователь может его оттуда открыть, изменить и сохранить с помощью созданного на основе ajax интерфейса, тогда без проблем ваш вариант — то что нужно. Но проверять его работоспособность надо давая браузеру понять, что тот работает с сервером и не должен налагать ненужных ограничений. Для этого и будет нужен локальный сервер.


--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0475 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.