Uncaught TypeError: невозможно прочитать свойство «appendChild» неопределенного после вызова Ajax

Я хотел заменить свой html новым html-кодом ответа Ajax, но эта ошибка отображается в консоли, и мои файлы сценариев загружаются неправильно. Судя по всему, эта ошибка возникает в файле "jquery-1.10.1.min.js". Ниже приведен мой код ajax, который я использовал для замены html в функции успеха.

$(function() {
         $('#addcustomer-done').click(function() {

       var formData = new FormData($('#submit_form')[0]);

       //---------------------- AJAX CALL 1 -----------------------------------------//
       $.ajax({
            // headers : {
                      // 'X-CSRF-Token' : document.getElementsByName('csrfmiddlewaretoken')[0].value
                  // },
            url : "/savecustomer/",
            type : "POST",

             data:formData,
             contentType: false,
             cache: false,
             processData: false,
             async: false,

             cache:false,
             contentType: false,
             processData: false,


            success : function(data) {
                alert(data);

                $("html").html("");
                $("html").html(data);
            }

Я новичок в ajax. Пожалуйста, подскажите, как избавиться от этой ошибки. Заранее спасибо.


person Sibtain    schedule 28.11.2014    source источник
comment
удалить async:false из ajax   -  person Anoop Joshi    schedule 28.11.2014
comment
@AnoopJoshi Все та же ошибка.   -  person Sibtain    schedule 28.11.2014
comment
не очищайте элементы внутри HTML-тегов. USe $(тело).append(данные);   -  person Anoop Joshi    schedule 28.11.2014


Ответы (1)


Не очищайте элементы внутри тегов html. Используйте элемент, присутствующий в dom, чтобы добавить значение. Также удалите async:false из вашего ajax. Потому что ajax должен работать асинхронно.

$(function() {
    $('#addcustomer-done').click(function() {
        var formData = new FormData($('#submit_form')[0]);
        $.ajax({
            url: "/savecustomer/",
            type: "POST",

            data: formData,
            success: function(data) {
                console.log(data);
                $("#id of element inside tab").append(data);
            }
        });
    });
});
person Anoop Joshi    schedule 28.11.2014
comment
Спасибо, что удалили ошибку, но она обновила всю мою страницу. На самом деле я использую мастер форм начальной загрузки, и я хочу остаться на определенной вкладке и просто перезагрузить страницу, не обновляя ее целиком. - person Sibtain; 28.11.2014
comment
см. редактирование. дать идентификатор или класс элементу внутри вкладки. И добавьте в него значение - person Anoop Joshi; 28.11.2014
comment
Чтобы было понятно, у меня есть раскрывающийся список, который необходимо обновить после добавления клиента. - person Sibtain; 28.11.2014
comment
Я попробовал $('#tab2').replaceWith($(data).find(#tab2).html()); и это работало нормально. Спасибо за помощь :) - person Sibtain; 28.11.2014
comment
Приведенная выше строка кода немного ошибочна. Попробуйте этот $('#replace-div').html($(data).find(#replace-div).html()); - person Sibtain; 28.11.2014