javascript - 访问 Node 服务器上的发布数据?

标签 javascript ajax node.js express

我正在尝试使用 AJAX 将简单的表单数据发送到 Node/express 服务器。提交时,我会进入 Cannot POST/页面,虽然我能够 console.log 请求,但它不包含表单中的数据。我缺少什么?

表格

<form method="POST" class="form-group">
    <label for="sentenceCount">Sentences</label>
     <input type="number" placeholder="10" name="sentence count" id="sentenceCount" class="form-control parameters">
  <button type="submit" id="submit" class="btn btn-primary mt-1">Submit</button>

</form>

AJAX 请求 $('按钮').on('点击', 函数(数据) {

            $.ajax({
                data: data,
                url: '/data',
               type: "POST"

            })
        }

    )

服务器.js

var express = require('express');
var app = express();
app.listen(8000)

app.get('/', function (req, res) {
    res.sendFile('/Index.html', {
        root: __dirname
    })
});

app.post('/data', function (req, res) {
    console.log(req)
})

更新:

我已经摆弄并且能够访问主体属性,但主体是空的并且无法获取我需要的输入值。

AJAX:

 $('button').on('click', function(data) {
         var formData = $('input').val();
        console.log(formData)

            $.ajax({
                data: formData,
                url: '/data',
               type: "post"

            })
        }

    )

服务器:

app.get('/', function (req, res) {
res.sendFile('/Index.html', {
    root: __dirname
})
});

    app.use(bodyParser.json())

    app.post('/data', function(req, res)  {
        console.log(req.body)
        });

最佳答案

你忘记了正文解析器。

  1. 安装body-parsernpm i body-parser
  2. 在快速路由之前添加正文解析器 JSON 中间件。

示例:

const bodyParser = require('body-parser');
const express = require('express');

const app = express();

app.use(bodyParser.json())

app.post('/data', (req, res) => {
    console.log(req.body);
    res.end();
});

表单数据应该是用 JSON 编码的对象:

 $('button').on('click', function(data) {
     var formData = $('input').val();
        $.ajax({
            data: {value: formData},
            url: '/data',
           type: "post"

        })
    }

)

关于javascript - 访问 Node 服务器上的发布数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40197783/

相关文章:

javascript - Angular 平图拉不加载宽度和高度

javascript - React - 无限循环 xhr sockjs-node

node.js - 子 package.json 中的根 package.json 未满足依赖关系

mysql - 从nodejs GKE pod连接到外部mysql数据库

javascript - CSS 未加载到 node.js 上的 easyrtc 应用程序中

javascript - 多个jQuery事件,获取当前执行事件

JavaScript 按钮设置

php - 使用ajax删除选中的表行

javascript - Ajax 回调返回了无效的 json

javascript - 如何制作 jQuery Ajax 加载请求的真正进度条?