Uncaught ReferenceError: ответ не определен - PullRequest
0 голосов
/ 20 марта 2019

Я пытался использовать ajax для простого раздела на веб-сайте django.кнопка лайка при нажатии нравится пост, но HTML не изменился.Если я обновляю страницу, html изменяется.

консоль выдает следующую ошибку

Uncaught ReferenceError: ответ не определен в Object.success ((index): 271) в u(jquery.min.js: 2) в Object.fireWith [as resolWith] (jquery.min.js: 2) в k (jquery.min.js: 2) в XMLHttpRequest.(jquery.min.js: 2)

javascript приведен ниже

<script type="text/javascript">

  $(document).ready(function(event){
    $(document).on('click','#like', function(event){
      event.preventDefault();
      var pk= $(this).attr('value');
      $.ajax({
        type:'POST',
        url:'{% url "like_post" post.id %}',
        data:{'blog_id':pk,'csrfmiddlewaretoken':'{{ csrf_token}}'},
        dataType:'json',
        success: function(event){
          $('#like-section').html(response['form'])
        },
        fail:function(rs, e){
          console.log(rs, responseText);
        },
      });
    });
  });
</script>

html раздела

<div>
            <form action="{% url 'like_post' post.id %}">
              {% csrf_token %}
              {% if is_liked %}

                    <button id="like" type='submit' name='blog_id' value="{{ post.id }}" class="btn ">unlike</button>

              {% else %}

                    <button id="like" type='submit' name='blog_id' value="{{ post.id }}" class="btn ">like</button>
              {% endif %}
            </form>
</div>

ниже приведен кодhtml-страницы

<div id="like-section">

              {% include 'blog/like_section.html' %}
            </div>

Ответы [ 2 ]

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

Вы получаете эту ошибку, потому что ваш метод успеха не знает, что ответ. Попробуйте передать ответ вместо события, проверьте событие [response] ['form'] или зарегистрируйте объект события, чтобы найти то, что вам нужно.

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

Ваша переменная 'response' не определена.У вашего обработчика успеха ajax есть 'event', замените 'event' на 'response', и он должен работать.

success: function(response){
    $('#like-section').html(response['form'])
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...