3 回答

TA贡献1840条经验 获得超5个赞
400 表示请求错误,您的问题与 cors 无关。您没有设置您的 api 来处理响应发送的 JSON 数据,因此它无法读取您的 request.body 并给出 400-Bad Request。
所以你需要添加这一行:
app.use(bodyParser.json());
同样在当前版本的 express 中,body parser 不是必需的,它带有 express。所以你可以像这样使用它:
app.use(express.json());
它与邮递员合作的原因是您以 x-www-form-urlencoded 发送数据。

TA贡献1875条经验 获得超3个赞
您可以使用检查我的代码是否有 cors 错误。
const express = require('express');
var mongoose = require('mongoose');
const bodyParser = require('body-parser');
var morgan = require('morgan');
var cors = require('cors')
const app = express();
// CORS Middleware
app.use(cors());
// Logger Middleware
app.use(morgan('dev'));
// Bodyparser Middleware
app.use(bodyParser.json());
const MongoClient = require('mongodb').MongoClient;
const uri = "uri";
const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });
client.connect(err => {
console.log('MongoDB Connected...')
const collection = client.db("dbname").collection("collectionname");
app.post('/name', (req, res) => {
collection. insertOne({ name: req.body.name })
res.send("data added")
});
});
const port = process.env.PORT || 5000;
app.listen(port, function () {
console.log(`Example app listening on port ${port}`);
});

TA贡献1921条经验 获得超9个赞
您需要将 cors 中间件注册到 express 应用程序中。
const express = require("express");
const bodyParser = require("body-parser");
const cors = require("cors");
const app = express();
app.use(cors());
app.post("/", (req, res) => {
res.send("Hello World!");
});
const PORT = 5000;
app.listen(PORT, () => console.log(`listening on port localhost:${PORT}`)
添加回答
举报