@twwebrus

Uncaught SyntaxError: Unexpected token < — как исправить?

Доброго времени суток.
В консоли на сайте можно наблюдать ошибку на скрине.
5b6225adcfc59900527384.png
В чём собственно может быть проблема? Скрипт прилагаю
<script id="mailer" type="text/javascript">
var selector = 'form[data-name]', form_ids = [], cur_id = '';
$(selector).each(function(){
	cur_id = $(this).attr('id');
	if($(this).attr('action') === undefined) {
	$(this).attr('action', '/').attr('method', 'post');
	if(form_ids.indexOf(cur_id) !== -1){
		cur_id = cur_id+form_ids.length;
		$(this).attr('id', cur_id);
	}
	form_ids.push(cur_id);
}});
$(function() {
  $(selector + '[action = "/"]').submit(function(e) {

		action = '<?php bloginfo('template_url'); ?>/mailer.php';
    cur_id = '#' + $(this).attr('id');

		$(cur_id).parent().find('.w-form-done,.w-form-fail').hide();

    cur_action = $(cur_id).attr('action');
    if (cur_action !== '/') {
      action = cur_action;
    }

		submit_input = $(cur_id).find('[type = submit]');
		submit_label = submit_input.val();
    if (submit_input.attr('data-wait') === 'Please wait...') {
      submit_input.val('Идет отправка...');
    }else{
			submit_input.val(submit_input.attr('data-wait'));
		}

    if($(cur_id+' [name=Форма]').is('input')){
      $(cur_id).find('[name=Форма]').val($(cur_id).attr('data-name'));
    } else {
      $('<input type="hidden" data-name="Форма" name="Форма" value="' + $(cur_id).attr('data-name') + '">').prependTo(cur_id);
    }

    if($(cur_id+' [name=Запрос]').is('input')){
      $(cur_id).find('[name=Запрос]').val(document.location.search);
    } else {
      $('<input type="hidden" data-name="Запрос" name="Запрос" value="' + document.location.search + '">').prependTo(cur_id);
    }

    if($(cur_id+' [name=Заголовок]').is('input')){
      $(cur_id).find('[name=Заголовок]').val(document.title);
    } else {
      $('<input type="hidden" data-name="Заголовок" name="Заголовок" value="' + document.title + '">').prependTo(cur_id);
    }

    if($(cur_id+' [name=Страница]').is('input')){
      $(cur_id).find('[name=Страница]').val(document.location.origin + document.location.pathname);
    } else {
      $('<input type="hidden" data-name="Страница" name="Страница" value="' + document.location.origin + document.location.pathname + '">').prependTo(cur_id);
    }

    $('<input type="hidden" name="required_fields">').prependTo(cur_id);
    required_fields = '';

    required_fields = '';
    $(cur_id).find('[required=required]').each(function() {
      required_fields = required_fields + ',' + $(this).attr('name');
    });
    if(required_fields !== '') { $(cur_id).find('[name=required_fields]').val(required_fields); }

    e.preventDefault();
    var formData = new FormData($(cur_id)[0]);
    $.ajax({
        url: action,
        type: 'POST',
        processData: false,
        contentType: false,
        data: formData
      })
      .done(function(result) {
				console.log(result);
				result = JSON.parse(result);

				if(result['success_msg'] != '') {
					$(cur_id).parent().find('.w-form-done').html('<div>'+result['success_msg']+'</div>');
				}

				$(cur_id).parent().find('.w-form-fail').html('<div>'+result['error_msg']+'</div>');

				submit_input.val(submit_label);

        if(result['status'] == 'success'){
          if(result['redirect'] !== '' && result['redirect'] !== '/-') {
            document.location.href = result['redirect'];
            return (true);
          }
          $(cur_id).siblings('.w-form-fail').hide();
          replay_class = '.w-form-done';
          replay_msg = result['success_msg'];
        } else {
          $(cur_id).siblings('.w-form-done').hide();
          if(result['error'] === 'ERROR_REQUIRED') {
            replay_msg = 'Не заполнено обязательное поле!'
          } else {
            replay_msg = result['error_msg'];
          }
          replay_class = '.w-form-fail';
        }

				replay_div = $(cur_id).siblings(replay_class);
        replay_div.show();
        if(result['hide']) {
          $(cur_id).hide();
        }

				result['delay'] = parseInt(result['delay']);
        if(result['delay'] !== 0) {
          if(result['hide_lbox'] && result['status'] == 'success') {
            $('.'+result['lbox_class']).delay(result['delay']).fadeOut();
          }
          replay_div.delay(result['delay']).fadeOut();
          $(cur_id).delay(result['delay']+1000).fadeIn();
        }

        if(result['status'] == 'success') {
          $(cur_id).trigger("reset");
          $(this).siblings('div[for]').text('');
          $(this).find('textarea').val('');
        }
      });

    if($(cur_id).attr('data-gform') !== undefined){
      $(cur_id).find('[data-gfield]').each(function(indx) {
        $(this).attr('name', $(this).attr('data-gfield'));
      });
      $.ajax({
        type: 'post',
        url: $(cur_id).attr('data-gform'),
        data: $(this).serialize(),
        dataType: "xml",
      });
      $(cur_id).find('[data-gfield]').each(function(indx) {
        $(this).attr('name', $(this).attr('data-name'));
      });
    }
  });
});

$('textarea').each(function(){if($(this).val().trim() === '') $(this).val('');});
$('textarea').focus(function(){if($(this).val().trim() === '') $(this).val('');});
$('.w-form [data-name]').each(function(indx) {
  $(this).attr('name', $(this).attr('data-name'));
});

$('label[for^=file]').each(function() {
  file_id = $(this).attr('for');
  $(this).after('<input name="file[]" type="file" id="' + file_id + '" multiple style="display:none;">');
  $('input#' + file_id).change(function() {
    $(this).siblings('div[for]').text('Файлы прикреплены.');
  });
});

</script>
  • Вопрос задан
  • 1074 просмотра
Пригласить эксперта
Ответы на вопрос 2
ошибка не в этом коде
Ответ написан
Комментировать
SagePtr
@SagePtr
Еда - это святое
В 90% случаев такой "Unexpected token <" - это выведенная на экран ошибка PHP, которая по умолчанию выводится на экран в формате HTML и начинается с открывающего тэга (не является валидным JSON, поэтому на ней JS и обламывается)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы