Вход

Просмотр полной версии : Ошибка при подключении файла в обработчике ajax


skillful
14.07.2013, 13:50
Здравствуйте! Недавно решил использовать 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 - http://host.ru/
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 http://host.ru/functions.js:
i++
called via Function.prototype.apply() from line 2, column 29466 in <anonymous function: f.Callbacks>(b, f) in http://host.ru/jquery.js:
if(c[l].apply(b,f)===!1&&a.stopOnFalse)
called from line 2, column 31004 in <anonymous function: fireWith>(b, c) in http://host.ru/jquery.js:
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 http://host.ru/jquery.js:
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 http://host.ru/jquery.js:
m&&g(j,k,m,l)

Как можно победить проблему?

mta88
14.07.2013, 14:22
Но стоит в обработчике подключить какой-нибудь файл (php или txt)
не понял что куда подключить
расскажите подробнее или покажите конечный нерабочий код

skillful
14.07.2013, 14:52
не понял что куда подключить
расскажите подробнее или покажите конечный нерабочий код

Запрос отправляется в файл 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);
}

?>

skillful
14.07.2013, 15:00
Еще заметил одну весчь: 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++) {

skillful
14.07.2013, 15:16
Кажется понял. Проблема с путями у меня на сайте. Это не как не связано с COMET. Прошу прощения. Спасибо.

mta88
14.07.2013, 15:42
require_once("http://host.ru/func.php");

ну кто-ж так делает
для того, чтобы это работало, нужны особые настройки сервера, а выгоды в любом случае не будет
если коротко лучше так

require_once("func.php");

skillful
14.07.2013, 16:21
require_once("http://host.ru/func.php");

ну кто-ж так делает
для того, чтобы это работало, нужны особые настройки сервера, а выгоды в любом случае не будет
если коротко лучше так

require_once("func.php");


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