在烧瓶上接收阵列数据时,您能帮我解决一个问题吗?
烧瓶路线
@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 print(data)中,我看到没有收到任何信息。
谢谢。
答案 0 :(得分:1)
由于您要发送json,因此需要在contentType
中设置正确的$.ajax
尝试添加:
$.ajax({
url: '/grab_checkboxes',
contentType: 'application/json; charset=utf-8`,
....