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}`)
添加回答
舉報