Jquery Nodejs和Expressjs发送ajax post请求

Jquery Nodejs和Expressjs发送ajax post请求,jquery,ajax,node.js,express,redis,Jquery,Ajax,Node.js,Express,Redis,我在发送post数据时遇到问题http://localhost:1111/user/create. 我使用Expressjs框架和Redis作为我的数据库。主要问题是它没有在我的客户端中获取文本框的值,并且在发送post数据之后,redis中所有字段的值都没有定义。我不知道这里出了什么问题,但这是我的代码: server.js中的app.post 以下是关于如何发送post数据的jquery: <script type="text/javascript">

我在发送post数据时遇到问题http://localhost:1111/user/create. 我使用Expressjs框架和Redis作为我的数据库。主要问题是它没有在我的客户端中获取文本框的值,并且在发送post数据之后,redis中所有字段的值都没有定义。我不知道这里出了什么问题,但这是我的代码:

server.js中的app.post

以下是关于如何发送post数据的jquery:

<script type="text/javascript">
            $("#createbutton").submit(function(event) {
                event.preventDefault();
                var data = {};
                data.name = $('#nameinput').val();
                data.email = $('#emailinput').val();
                data.username = $('#usernameinput').val();
                data.password = $('#passwordinput').val();
                JSON.stringify(data);
                console.log(data);

                $.ajax({
                    type: 'POST',
                    url: 'http://localhost:1111/user/create',
                    data: {data},
                    dataType: 'application/json',
                    success: function(data) {
                        console.log('success');
                        console.log(data);
                    }
                });
            });
        </script>
我已经检查了客户端和服务器,但我无法找出错误是什么。提前感谢各位。

我不了解expressjs,但您可以尝试更改以下数据类型:

dataType: 'application/json'
致:


您的数据变量错误,请将js代码更改为下面的代码,然后重试一次:

<script type="text/javascript">
            $("#createbutton").submit(function(event) {
                event.preventDefault();
                var data = {};
                data.name = $('#nameinput').val();
                data.email = $('#emailinput').val();
                data.user = $('#usernameinput').val();
                data.pass = $('#passwordinput').val();
                $.ajax({
                    type: 'POST',
                    url: 'http://localhost:1111/user/create',
                    data: data,
                    dataType: 'application/json',
                    success: function(data) {
                        console.log('success');
                        console.log(data);
                    }
                });
            });
        </script>

看起来您在数据中发送了错误的参数,并在服务器中以错误的名称访问它。让我们看看您的jquery代码是否不正确。您可以发送html代码吗?不需要客户端,但是如果您在表单中以与变量和bodyparser相同的方式指定了输入字段的名称,那么就不需要使用ajax从客户端发送内容。Bodyparser初始化服务器端的所有内容,您可以直接在客户端使用req.body
dataType: 'json'
<script type="text/javascript">
            $("#createbutton").submit(function(event) {
                event.preventDefault();
                var data = {};
                data.name = $('#nameinput').val();
                data.email = $('#emailinput').val();
                data.user = $('#usernameinput').val();
                data.pass = $('#passwordinput').val();
                $.ajax({
                    type: 'POST',
                    url: 'http://localhost:1111/user/create',
                    data: data,
                    dataType: 'application/json',
                    success: function(data) {
                        console.log('success');
                        console.log(data);
                    }
                });
            });
        </script>
app.use(express.bodyParser());