Javascript 使用Ajax发出POST请求
我想使用Ajax向flask服务器发送电子邮件,但它不工作。Javascript 使用Ajax发出POST请求,javascript,ajax,flask,Javascript,Ajax,Flask,我想使用Ajax向flask服务器发送电子邮件,但它不工作。下面是我的代码。脚本: <script type="text/javascript"> $(document).ready(function(){ var email = ""; $("#letter").on("click",function(){ email = $("letterEmail").val();
下面是我的代码。
脚本:
<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>
这是表单的html
<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>
问题是数据不是从客户端发送的。
因此,我在服务器端也得到了一个
keyrerror
。请帮助。客户端问题如下:
email = $("letterEmail").val();
它将尝试获取页面中带有标记名letterEmail
的任何元素,我认为您没有
可能,您在这里要做的是通过其ID将其作为元素:
email = $("#letterEmail").val();
钥匙错误是由于烧瓶找不到钥匙造成的。注意:如果stringify发现一个空的电子邮件变量,它将不会自动在post中包含该键
另外,不要直接使用
request.json
,而是使用request.get_json()
“它不工作”-什么不工作?您是否收到控制台错误?浏览器控制台上是否有任何错误?我收到的电子邮件未定义@我已更正,但它发出了get请求@Buzinas并在浏览器中显示电子邮件url@rajendrakadam您是否尝试直接发送对象:数据:{Email:Email},
,不是字符串化它吗?是的,我现在尝试了。它再次发出GET请求@BuzinasTry使用$。post
。例如:$.post('/letters',{Email:Email})
我应该不包括contentType吗?@BuzinasI在其他html中也有其他功能,可以使用ajax发出post请求,并且可以与request.json
一起工作,但不能使用此request.json
工作,但不能直接使用。见文件
email = $("#letterEmail").val();