使用Ajax发出POST请求

时间:2015-09-22 18:12:47

标签: javascript ajax flask

我想使用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
请帮忙。

1 个答案:

答案 0 :(得分:0)

这里的客户端问题在这一行:

email = $("letterEmail").val();

它会尝试使用tagName letterEmail获取页面中的任何元素,并且我认为你没有。

或许你想在这里做的是通过它的ID获取元素:

email = $("#letterEmail").val();