#javascript #python #html #flask
#javascript #python #HTML #flask
Вопрос:
я создаю форму для простого исследования, но она работает некорректно, моя форма отправляет значения, но моя внутренняя колба показывает значение null, я протестировал серверную часть с insomnia, все в порядке, помогите, пожалуйста
Мой HTML, JS
<form name="myForm" method="POST">
<p><label for="first_name">First Name:</label>
<input type="text" name="first_name" id="fname"></p>
<p><label for="last_name">Last Name:</label>
<input type="text" name="last_name" id="lname"></p>
<input value="Submit" type="submit" onclick="create_send_Json()">
</form>
<script>
function create_send_Json() {
// get name
var fname = document.forms["myForm"]["fname"].value;
var lname = document.forms["myForm"]["lname"].value;
// make JSON
data = { "fname": fname, "lname": lname };
var jsonData = JSON.stringify(data);
// Send data
var xhr = new XMLHttpRequest();
var url = 'http://localhost:5000/contact';
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type", "application/json");
console.log(jsonData);
xhr.send(jsonData);
return false;
}
</script>
Моя колба
@app.route('/contact', methods=['POST','GET'])
def login():
if request.method == 'POST':
data = request.json
print (data)
return jsonify(data)
else:
return render_template('contact.html')
Комментарии:
1. итак, вы подтвердили, что данные POST в браузере не отправляют null? могу ли я предложить
onclick="return create_send_Json()"
запретить отправку формы, поскольку вы выполняете XHR при отправке — возможно, это как-то связано с запросом2. независимо от того… put
onclick="return create_send_Json()"
— т. е. добавьте туда возврат