如何让我的 AJAX 按钮按下请求在我的 Django 环境中工作?

问题描述 投票:0回答:1

所以基本上我想在 python 函数中使用一个 JS 字符串变量,然后将它返回给一个 JS 变量。我假设最好的方法是通过 Json/ajax?

首先,我有一个 html 元素,其中放置了一个字符串。

<h2 id="output"></h2>

我的计划是从 HTML 中提取该值(如下面的 AJAX 语句所示):

var word = $("#output").val();

并使用 AJAX 将其发送到后端以供 python 脚本检查该单词是否是真正的英语单词(返回 true/false)。

使用我拥有的 AJAX 代码,我不断返回一个未定义的变量。

这是AJAX代码:

$(document).ready(function() {
  $('#submit_word').click(function() {
      var word = $("#output").val();
      $.ajax({
          url: '{% url 'wordgame' %}', //not sure
          type: 'POST',
          dataType: 'json',
          data: {word:word, csrfmiddlewaretoken: "{{ csrf_token }}",},
          success: function(response) {
              var word_result = JSON.parse(response.result);
              console.log(response.result);
              $("#check-word").text(word_result);
          },
          error: function(response) {
              console.log(response.result);
          }
      });
  });
});

还有我的观点功能:

def fetch_word(request):
    word = request.POST.get('word')
    result = check_if_word_in_dictionary(word)
    return JsonResponse({'result': result})

每当我单击按钮时,它都会执行我的 ajax 语句的“错误”部分:

error: function(response) {
              console.log(response.result);
          }

在控制台打印'undefined'。我是 ajax/django 的新手,所以我认为这只是一个语法错误,但我花了太多时间试图弄清楚这个问题:(

javascript python django ajax button
1个回答
1
投票

更改函数参数中对数据的响应字样,然后重试。那是因为jquery中没有响应,是数据https://api.jquery.com/jquery.ajax/

例子

$.ajax({
      url: '{% url 'wordgame' %}', //not sure
      type: 'POST',
      dataType: 'json',
      data: {word:word, csrfmiddlewaretoken: "{{ csrf_token }}",},
      success: function(data) {
          var word_result = data);
          console.log(data.result);
          $("#check-word").text(word_result);
      },
      error: function(data) {
          console.log(data);
      }
© www.soinside.com 2019 - 2024. All rights reserved.