P
P
parger2020-05-05 17:02:32
JavaScript
parger, 2020-05-05 17:02:32

JS does not work, gives an error in the browser?

Browser error

VM7348:1 Uncaught SyntaxError: Unexpected token < in JSON at position 0
    at Function.parse [as parseJSON] (<anonymous>)
    at Object.success ((index):171)
    at u (jquery.min.js:1)
    at Object.fireWith [as resolveWith] (jquery.min.js:1)
    at k (jquery.min.js:1)
    at XMLHttpRequest.<anonymous> (jquery.min.js:1)


The code itself:
$(document).ready(function() {
    $("form").submit(function(event) {
        event.preventDefault();
        $.ajax({
            type: $(this).attr('method'),
            url: $(this).attr('action'),
            data: new FormData(this),
            contentType: false,
            cache: false,
            processData: false,
            success: function(result) {
                json = jQuery.parseJSON(result);
                if (json.url) setTimeout(redirect, 2000, json.url);
                swal({
                    title: json.header,
                    text: json.message,
                    icon: json.status,
                });
            }
        });
    });
});

function redirect(url) {
    window.location.href = url;
}

Answer the question

In order to leave comments, you need to log in

2 answer(s)
S
SagePtr, 2020-05-05
@SagePtr

Обычно если полученный с сервера JSON начинается с символа "<", это означает, что сервер вместо него возвращает HTML-код (вероятнее всего, страницу об ошибке). Смотрите, что конкретно сервер вам возвращает на данный запрос, который вы получаете AJAX'ом.

Игорь, 2020-05-05
@loonny

Значит JSON не валидный. Посмотрите во вкладке Network в devtools ответ сервера. Кстате вы можете указать dataType: 'json' в объекте ajax и в функцию success передастся уже не строка json, а объект JavaScript

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question