Отправка массива в колбу с помощью ajax - PullRequest
0 голосов
/ 11 июля 2019

Не могли бы вы помочь мне с проблемой получения данных массива на колбу?

маршрут фляги

@app.route("/grab_checkboxes", methods = ["GET", "POST"])
def grab_checkboxes():
    print("Grabbing 1 or more checkboxes that are true!")
    data = request.get_json()
    print(data)
    return "1"

JQuery и AJAX код

{% extends "layout.html" %}
{% block content%}
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
  $("document").ready(function() {
  var checked_codes = [];
  $("#checked_codes_button").mouseenter(function(){
    $.each($("input[type='checkbox'][name='record_code']:checked"), function(){ 
                checked_codes.push($(this).val());
            });
            console.log(checked_codes)
    });
  $("#checked_codes_button").click(function() {
      $.ajax({
        url: '/grab_checkboxes',
        data: JSON.stringify(checked_codes),
        type: 'POST',
        success: function(response) {
          console.log(response);
          console.log(checked_codes);
        }
      });
  });
});
</script>
  <table>
    {% for k1, v1 in list_to_print.items() %}
      {% for k2, v2 in code2descr.items() %}
        {% if k1 == k2 %}
          <tr>
              <td><input type="checkbox" checked name="record_code" value="{{k1}}" ></td>
              <td> {{ v1 }} </td>
              <th> {{ k1 }} </th>
              <td> {{ v2[0] }} </td>
              <td> {{ v2[2] }} </td>
              <td> {{ v2[1] }} </td>
          </tr>
        {% endif %}
      {% endfor %}
    {% endfor %}
  </table>
  <form action="/grab_checkboxes" method="post" id="checked_codes_button">
  <button type="submit">submit</button>
  </form>
{% endblock content %}

После нажатия кнопки я вижу, что консоль печатает правильные значения, однако в печати (данные) Python я вижу, что я получил None.

Спасибо.

1 Ответ

1 голос
/ 11 июля 2019

Поскольку вы хотите отправить json, вам нужно contentType установить в $.ajax

Попробуйте добавить:

$.ajax({
    url: '/grab_checkboxes',
    contentType: 'application/json; charset=utf-8`,
    ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...