我会收到此错误“访问 XMLHttpRequest 已被 CORS 策略阻止”"/>
即使我使用 CORS,为什么我会收到此错误“访问 XMLHttpRequest 已被 CORS 策略阻止”
这是我得到的错误:从来源“http://localhost:3000”访问位于“http://localhost:5050/api/posts/”的 XMLHttpRequest 已被 CORS 策略阻止:无“访问控制” -Allow-Origin' 标头出现在请求的资源上。
这是我的 express API 中的 index.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}`);
});
回答如下:
NodeJS 中的 CORS 选项与您的 CORS Browser 限制不同。虽然允许 NodeJS 阻止或允许某些来源,但您的浏览器有自己的一组过滤器,无论您的服务器配置如何,它都会阻止请求。
为了让您的浏览器从不同的端口获取数据,您需要使用--disable-web-security
(对于chrome)禁用您的
浏览器网络安全。这是一个 link 来指导您完成整个过程
更多推荐
即使我使用 CORS,为什么我会收到此错误“访问 XMLHttpRequest 已被 CORS 策略阻止”
发布评论