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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при отправке данных на сервер 
:(
    Опции темы
VasNN
Дата 24.7.2008, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем привет!

Я читаю книгу "ajax в действии". Там есть листинг с простой программой. 
Я скопировал оттуда код, запустил и обнаружил, что работает это только в IE и то не при всех параметрах. А FF выдает "Ошибка системы безопасности: содержимое «file:///D:/WIDGET/educate/index.html» не имеет права загружать данные из http://www.google.ru/." и "Ошибка: Access to restricted URI denied = NS_ERROR_DOM_BAD_URI
Источник: file:///D:/WIDGET/educate/index.html Строка: 20".
строка 20:  req.open(HttpMethod,url,true); 
В Opera работает частично.
Объясните, пожалуйста, что не так.
Код

<html>
  <head>
    <script type='text/javascript'>
      var req     = null;
      var console = null;
      
      var READY_STATE_UNINITIALIZED = 0;
      var READY_STATE_LOADING       = 1;
      var READY_STATE_LOADED        = 2;
      var READY_STATE_INTERACTIVE   = 3;
      var READY_STATE_COMPLETE      = 4;
      
      function sendRequest(url,params,HttpMethod){
        if(!HttpMethod){
          HttpMethod="GET";
        }
        req = initXMLHTTPRequest();
        if(req){
          req.onreadystatechange = onReadyState;
          req.open(HttpMethod,url,true);
          req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
          req.send(params);
        }
      }
      
      function initXMLHTTPRequest(){
        var xRequest = null;
        // Инициализация объекта запроса
        if (window.XMLHttpRequest){
          xRequest = new XMLHttpRequest();
        } else if (window.ActiveXObject){
          xRequest = new ActiveXObject("Microsoft.XMLHTTP");
        }
        return xRequest;
      }
      
      // Определение обработчика обратного вызова
      function onReadyState(){
        var ready = req.readyState;
        var data = null;
        // Проверка readyState
        if (ready == READY_STATE_COMPLETE){
          // Чтение данных ответа
          data = req.responseText;
        }else{
          data = "loading...["+ready+"]";
        }
        toConsole(data);
      }
      
      function toConsole(data){
        if (console != null){
          var newline = document.createElement("div");
          console.appendChild(newline);
          var txt = document.createTextNode(data);
          newline.appendChild(txt);
        }
      }
      window.onload = function(){
      console = document.getElementById('console');
      sendRequest("http://www.google.ru");
      }
    </script>
  </head>
  
  <body>
    
    <div id='console'></div>
  
  </body>
</html>


PM MAIL   Вверх
JSman
Дата 24.7.2008, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ajax не работает с чужими доменами. В этой книге, насколько я помню, говорится, что вы можете пользоваться службами гугла через сервер, который генерирует xml/json файлы при запросе.
PM ICQ   Вверх
VasNN
Дата 24.7.2008, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А можно подробнее? Т.е. это получается, что я не могу послать запрос серверу, если код, который посылает запрос серверу, находится на локальной машине? Но ведь IE работает, он посылает запрос и принимает ответ - как это объясняется?

Это сообщение отредактировал(а) VasNN - 24.7.2008, 16:16
PM MAIL   Вверх
comtat
Дата 24.7.2008, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 7
Всего: 71



Цитата(VasNN @  24.7.2008,  16:15 Найти цитируемый пост)
Т.е. это получается, что я не могу послать запрос серверу, если код, который посылает запрос серверу, находится на локальной машине? 

можешь если запрос ты посылаешь на локальный сервер
Цитата(VasNN @  24.7.2008,  16:15 Найти цитируемый пост)
Но ведь IE работает, он посылает запрос и принимает ответ - как это объясняется?

сточки зрения безопасности это дыра


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
VasNN
Дата 25.7.2008, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Извините, что я по этой теме не секу, но объясните, пожалуйста, еще момент. 

1. Браузер отправляет запросы на сервер и принимает ответы. Почему XMLHttpRequest не может выполнить аналогичную функцию?

2. В Opera есть виджеты. Они используют там XMLHttpRequest и виджеты работают. Почему не работает XMLHttpRequest просто на страничке в составе скрипта(не виджет).

ps. меня интересует вопрос создания виджетов. Сейчас пытаюсь делать скрипты на обычной страничке, которые бы посылали запросы и получали ответы - не получается.
PM MAIL   Вверх
skyboy
Дата 25.7.2008, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(VasNN @  25.7.2008,  08:34 Найти цитируемый пост)
 Сейчас пытаюсь делать скрипты на обычной страничке, которые бы посылали запросы и получали ответы - не получается.

если говорить о firefox - там не виджеты, а плагины. с другим АПИ. я понимаю, что ты и так в курсе, но не понимаю, зачем отлаживать прототип виджет для оперы под файерфоксом?
вопрос ограничения - вопрос безопасности.
опасность безконтрольной отправки в том, что встроенный в страницу скрипт может "сливать" данные незаметно для пользователя. страница при этом не перегружается, индикатор не шевелится... то, что в ИЕ что-то потенциально опасное работает, говорит отнюдь не в пользу ИЕ.
PM MAIL   Вверх
comtat
Дата 25.7.2008, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 7
Всего: 71



вот еще почитай по теме http://xmlhttprequest.ru/#security


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




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


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

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