我想使用Ajax向我的烧瓶服务器发送电子邮件,但它无法正常工作。
以下是我的代码。
脚本:
<script type="text/javascript">
$(document).ready(function(){
var email = "";
$("#letter").on("click",function(){
email = $("letterEmail").val();
$.ajax({
type: 'POST',
url: '/letters',
data: JSON.stringify({Email: email}),
contentType: 'application/json;charset=UTF-8'
});
$("#lettersForm").html("Sent");
console.log(email.toString());
});
});
</script>
Python View来处理这个问题:
@app.route("/letters", methods = ['POST'])
def letters():
email = request.json['Email']
send_email("myemail@example.com","Email",str(email))
return True
这是表格的
<form id = "lettersForm">
<div class="row uniform 50%">
<div class="8u 12u(mobilep)">
<input type="email" name="email" id="letterEmail" placeholder="Email Address" />
</div>
<div class="4u 12u(mobilep)">
<input id = "letter" type="submit" value="Sign Up" class="fit" />
</div>
</div>
</form>
问题是数据不是从客户端发送的。
所以我在服务器端也得到KeyError
。
请帮忙。
答案 0 :(得分:0)
这里的客户端问题在这一行:
email = $("letterEmail").val();
它会尝试使用tagName letterEmail
获取页面中的任何元素,并且我认为你没有。
或许你想在这里做的是通过它的ID获取元素:
email = $("#letterEmail").val();