Не удалось выполнить postMessage для окна на Ajax - PullRequest
0 голосов
/ 20 марта 2020

Я сделал собственный газ для ajax запросов.

Проблема в том, что я получаю эту ошибку?


Uncaught TypeError: Не удалось выполнить 'postMessage 'on' Window ': требуется 1 аргумент, но присутствует только 0.


Линия указывает на $.ajax({.

HTML:

<input class="image_title" />
<span class="the_title"></span>

JS:

$(function() {

var aj_count = 0;
var aj_flag = false;
var aj_flag2 = false;
var run_on = -1;
setInterval(function() {
    aj_count++;

    if (aj_flag === true) {
        run_on = aj_count + 250;
        aj_flag = false;
        aj_flag2 = true;
    }

    if (run_on < aj_count && aj_flag2 === true) {

        var $t = $(this);
        var daid = $('.image_id').val();

        aj_flag2 = false;

        $.ajax({
            type: "POST",
            url: '/ajax/set_title.php',
            data: {
                'title' : $t,
                'id' : daid
            },
            success: function(data) {
                var data = JSON.parse(data);

                $('.the_title').html( '<small>Title:</small> <strong>' + data.title + '</strong>' );
            }
        });

    }
}, 1);

$('.image_title').on('input', function(e) {
    aj_flag = true;

    e.preventDefault();
    return false;
});

$('.image_title').on('keydown', function(e) {
    if (e.which == 13) {
        e.preventDefault();
        return false;
    }
});

});

enter image description here

Как вы можете видеть, я пытался переместить значения прямой формы в переменные et c, но Я не могу заставить его работать больше. Когда я заменяю раздел ajax на console.log, он работает как положено. Я искал вокруг, но я действительно не понимаю, что означает ошибка, поскольку ajax передан массив.

Спасибо за ваше время

1 Ответ

1 голос
/ 20 марта 2020

Ошибка, вероятно, из-за

        var $t = $(this);

Вы пытаетесь отправить $t в качестве значения параметра title: с

data: {
    title: $t,
    id: daid
},

Но jQuery объект нельзя сериализовать в параметр POST.

Вам необходимо установить $t в правильную строку заголовка. Я не знаю, где это находится в вашем приложении, но это должно это исправить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...