Подтвердить что ты не робот

Google Chrome: сообщение об ошибке JavaScript

При использовании Google Chrome появляется следующее сообщение об ошибке:

Ошибка:

Uncaught SyntaxError: Unexpected token <

Это происходит непосредственно после моего объявления doctype в верхней части моей HTML-страницы

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

Есть идеи, что это сообщение об ошибке JavaScript? Это похоже на Google Chrome (отлично работает в Safari, Firfox и IE)

4b9b3361

Ответ 1

Эта проблема возникла для меня, когда я использовал JQuery для загрузки в HTML из XMLHTTPRequest, который был HTML, но тип mime был text/javascript.

Так, например, у меня был код, например:

jQuery.ajax({
    data:'params=here',
    success:function(request) {
        jQuery('#country_list_container').html(request);
    },
    type:'get',
    url:'/getHtml'
});

jQuery отправляет запрос getHtml, а getHtml возвращает простой фрагмент кода HTML, но с типом/типом "text/javascript". Причина, по которой действие getHtml возвращалась text/javascript, заключается в том, что заголовок accept запроса из jQuery:

"Accept:text/javascript, text/html, application/xml, text/xml, */*"

Итак, все, что мне нужно было сделать, это заставить заголовок text/html, и все работает отлично.

Ошибка анализа, которую вы видите, является результатом того, что Javascript пытается оценить содержимое.

Ответ 2

В моем случае это было вызвано прерыванием eval(). Когда я исправил проблему, сообщение об ошибке исчезло.

В настоящее время (июнь 2010) у Chrome Javascript есть багги eval(). eval() будет отменен без выдачи сообщения об ошибке, если переменной в инструкции eval() было присвоено зарезервированное слово "delete". Мне потребовалось почти неделю, чтобы раскрыть эту ошибку, потому что eval() прерывается без предупреждения или сообщения об ошибке, а отмена имеет неприятные побочные эффекты.

Я использовал eval() для достижения этого результата: obj.delete = somevalue.

Этот код вызовет eval() abort:

var obj = new Object();
var x = 'delete';
var y = 2;
eval('obj.' + x + ' = y');

Этот код работает:

var obj = new Object();
var x = 'delete';
var y = 2;
eval('obj[\'' + x + '\'] = y');

В заключение не используйте eval() для построения obj.delete = somevalue. Используйте eval() для создания эквивалентного оператора obj["delete"] = somevalue.

Ответ 3

Может быть, тип содержимого HTTP не text/html или application/xhtml+xml?

Ответ 5

Попробуйте переключить порядок объявлений css и js. Работал для меня.

Ответ 6

Если вы возвращаете ответ на запрос ajax в JSON, убедитесь, что вы используете 'application/json' для Content-Type.

Ответ 7

Из-за риска выемки старого потока (я считаю, что лучше хранить всю информацию в одном месте), Chrome все еще бросает эти ошибки. Я получил следующее при разработке сайта и пробовал всевозможные вещи со страницей JS и PHP, чтобы избавиться от него. Ошибка, которую я получил:

error in event handler for 'undefined': SyntaxError: Unexpected token ILLEGAL
chrome/EventBindings:183

В конце концов, проверяя достоверность кода в FireFox, я наткнулся на ответ как предупреждение о том, что в некотором тексте, который должен быть преобразован в '&amp;', был '&' - после того, как это было сделано, ошибка Chrome ушла.

Стив

Ответ 8

У меня была эта проблема, когда я пытался установить .innerHTML динамически сгенерированный php (он был сгенерирован многострочным).

Замена новых символов строки пробелами решила проблему.

Ответ 9

Если приложение Rails проверяет, что format.js находится в блоке response_to.

Ответ 10

Я также столкнулся с этой ошибкой в ​​Chrome Dev Tools, и моя причина была похожа на Мэтью О'Риордана, за исключением того, что это был не признак MIME-типа, а скорее сломанный URL-адрес AJAX.

Я изменил структуру папок и забыл обновить URL-адрес; как только я исправил URL-адрес, ошибка Dev Tools JS Error исчезла. Надеюсь это поможет!:)