NodeJS 为什么我得到这个错误“访问XMLHttpRequest已被CORS策略阻止”,即使我使用CORS

64jmpszr  于 2023-04-29  发布在  Node.js
关注(0)|答案(1)|浏览(262)

这是我得到的错误:CORS策略已阻止从源“http://localhost:3000”访问位于“http://localhost:5050/api/posts/”的XMLHttpRequest:请求的资源上不存在“Access-Control-Allow-Origin”标头。
这是我的索引。我的express API的js代码:

const express = require('express');
require('dotenv').config();
const { errorHandler } = require('./middleware/errorMiddleware');
require('colors');
const connectDb = require('./config/dbConnect');
const PORT = process.env.PORT || 5050;
const cors = require('cors');

// Connect DB
connectDb();

// Routes
const inviteRoutes = require('./routes/inviteRoutes');
const userRoutes = require('./routes/userRoutes');
const postRoutes = require('./routes/postRoutes');

const app = express();

app.use(express.json());
app.use(express.urlencoded({ extended: false }));

const corsOptions = {
  origin: 'http://localhost:3000',
};
app.use(cors(corsOptions));

app.use('/api/invite', inviteRoutes);
app.use('/api/users', userRoutes);
app.use('/api/posts', postRoutes);

app.use(errorHandler);

app.listen(PORT, () => {
  console.log(`Server started on port: ${PORT}`);
});
dy2hfwbg

dy2hfwbg1#

NodeJS中的CORS选项与您的CORSBrowser限制不同。虽然NodeJS允许阻止或允许某些来源,但您的浏览器有自己的一组过滤器,无论您的服务器配置如何,都会阻止请求。
要允许您的浏览器从不同的端口获取数据,您需要使用--disable-web-security(用于chrome)禁用您的浏览器Web安全。下面的link将指导您完成整个过程

相关问题