这是我得到的错误: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}`);
});
1条答案
按热度按时间dy2hfwbg1#
NodeJS中的CORS选项与您的CORSBrowser限制不同。虽然NodeJS允许阻止或允许某些来源,但您的浏览器有自己的一组过滤器,无论您的服务器配置如何,都会阻止请求。
要允许您的浏览器从不同的端口获取数据,您需要使用
--disable-web-security
(用于chrome)禁用您的浏览器Web安全。下面的link将指导您完成整个过程