Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.07.2013, 13:50
Аспирант
Отправить личное сообщение для skillful Посмотреть профиль Найти все сообщения от skillful
 
Регистрация: 18.09.2012
Сообщений: 55

Ошибка при подключении файла в обработчике ajax
Здравствуйте! Недавно решил использовать COMET. Вот код
this.connection = function() {
        // здесь открывается соединение с сервером
        self.comet = $.ajax({
                type: "GET",
                url:  "http://host.ru/ajaxupdateonline.php",
                data: {'id':self.last},
                dataType: "text",
                timeout: self.timeout*1000,
                success: self.parseData,
                error: function(){
                    // something wrong. but setInterval will set up connection automatically
                    setTimeout(self.connection,1000);
               }
               
            });
            
    }


Все нормально работает. Но стоит в обработчике подключить какой-нибудь файл (php или txt), так сразу выходит ошибка javascripts.
Подключать пробывал:
include("http://host.ru/file.php");
require_once 'http://host.ru/file.txt';
require 'http://host.ru/file.txt';
Пути правильные.

JavaScript - [url]http://host.ru/[/url]
Event thread: readystatechange
Uncaught exception: SyntaxError: at line 2, column 0: expected expression, got '<'
Error thrown at line 609, column 36 in <anonymous function: parseData>(message) in [url]http://host.ru/functions.js:[/url]
    i++
called via Function.prototype.apply() from line 2, column 29466 in <anonymous function: f.Callbacks>(b, f) in [url]http://host.ru/jquery.js:[/url]
    if(c[l].apply(b,f)===!1&&a.stopOnFalse)
called from line 2, column 31004 in <anonymous function: fireWith>(b, c) in [url]http://host.ru/jquery.js:[/url]
    d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));
called from line 4, column 22304 in w(a, c, l, m) in [url]http://host.ru/jquery.js:[/url]
    v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))
called from line 4, column 34041 in <anonymous function: d>(a, e) in [url]http://host.ru/jquery.js:[/url]
    m&&g(j,k,m,l)

Как можно победить проблему?
Ответить с цитированием
  #2 (permalink)  
Старый 14.07.2013, 14:22
Профессор
Отправить личное сообщение для mta88 Посмотреть профиль Найти все сообщения от mta88
 
Регистрация: 16.05.2013
Сообщений: 229

Цитата:
Но стоит в обработчике подключить какой-нибудь файл (php или txt)
не понял что куда подключить
расскажите подробнее или покажите конечный нерабочий код
Ответить с цитированием
  #3 (permalink)  
Старый 14.07.2013, 14:52
Аспирант
Отправить личное сообщение для skillful Посмотреть профиль Найти все сообщения от skillful
 
Регистрация: 18.09.2012
Сообщений: 55

Сообщение от mta88 Посмотреть сообщение
не понял что куда подключить
расскажите подробнее или покажите конечный нерабочий код
Запрос отправляется в файл http://host.ru/ajaxupdateonline.php, его код
<?

require_once("http://host.ru/func.php"); // ругается на эту строчку или любую другую при подключении файла

$limit = 360;
$now = time();

// just to be sure that script will be killed
set_time_limit($limit+5);


while(time() - $now < $limit)
{
    echo 'self.putMessage("id", "name", "text");'; flush(); exit;
    sleep(2);
}

?>
Ответить с цитированием
  #4 (permalink)  
Старый 14.07.2013, 15:00
Аспирант
Отправить личное сообщение для skillful Посмотреть профиль Найти все сообщения от skillful
 
Регистрация: 18.09.2012
Сообщений: 55

Еще заметил одну весчь: Error thrown at line 609, column 36 in <anonymous function: parseData>(message) in http://host.ru/functions.js:

Приведу код полностью
this.parseData = function(message) {
        // простая обработка данных полученных с сервера, разбиваем строки и выполняет функции
        var items = message.split(';');
        if (items.length<1) return false;
        for (var i=0;i<items.length;i++) {
            eval(items[i]);
        }

        setTimeout(self.connection,1000);
    }
    this.connection = function() {
        // здесь открывается соединение с сервером
        self.comet = $.ajax({
                type: "GET",
                url:  "http://host.ru/ajaxupdateonline.php",
                data: {'id':self.last},
                dataType: "text",
                timeout: self.timeout*1000,
                success: self.parseData,
                error: function(){
                    // something wrong. but setInterval will set up connection automatically
                    setTimeout(self.connection,1000);
               }
               
            });
            
    }

Получается ругается на строку for (var i=0;i<items.length;i++) {
Ответить с цитированием
  #5 (permalink)  
Старый 14.07.2013, 15:16
Аспирант
Отправить личное сообщение для skillful Посмотреть профиль Найти все сообщения от skillful
 
Регистрация: 18.09.2012
Сообщений: 55

Кажется понял. Проблема с путями у меня на сайте. Это не как не связано с COMET. Прошу прощения. Спасибо.
Ответить с цитированием
  #6 (permalink)  
Старый 14.07.2013, 15:42
Профессор
Отправить личное сообщение для mta88 Посмотреть профиль Найти все сообщения от mta88
 
Регистрация: 16.05.2013
Сообщений: 229

require_once("http://host.ru/func.php");

ну кто-ж так делает
для того, чтобы это работало, нужны особые настройки сервера, а выгоды в любом случае не будет
если коротко лучше так
require_once("func.php");
Ответить с цитированием
  #7 (permalink)  
Старый 14.07.2013, 16:21
Аспирант
Отправить личное сообщение для skillful Посмотреть профиль Найти все сообщения от skillful
 
Регистрация: 18.09.2012
Сообщений: 55

Сообщение от mta88 Посмотреть сообщение
require_once("http://host.ru/func.php");

ну кто-ж так делает
для того, чтобы это работало, нужны особые настройки сервера, а выгоды в любом случае не будет
если коротко лучше так
require_once("func.php");
Ну не в этом проблема была Про настройки сервера я знаю, просто образно написал require_once("http://host.ru/func.php");. В любом случае ошибку заметил сам когда перечитывал код первого сообщения. Не написал бы сюда, с проблемой не справился Получается сам себе помог...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсветка кнопок при использовании AJAX dTi AJAX и COMET 3 03.07.2013 19:14
Ошибка при добавлении обработчика к событию Riim Events/DOM/Window 32 19.01.2010 14:17
При наборе адреса с www не работает AJAX (JQuery)! madmis AJAX и COMET 3 23.11.2009 19:03
Кодировка при использовании Ajax Nichloas AJAX и COMET 9 17.09.2009 16:06
Как узнать какие ошибки произошли при парсинге xml файла faunder Events/DOM/Window 0 12.09.2008 14:17