Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Ajax发出POST请求_Javascript_Ajax_Flask - Fatal编程技术网

Javascript 使用Ajax发出POST请求

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();

我想使用Ajax向flask服务器发送电子邮件,但它不工作。
下面是我的代码。
脚本:

    <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();