我已经如下设置了我的服务器,将原点指定为我们的 React 应用程序的 netlify 地址。但我们仍然收到 cors 错误。从源“https://grand-tapioca-07d51d.netlify.app”获取“https://lendify-production.up.railway.app/collection/all”的访问已被 CORS 策略阻止:无“访问” -Control-Allow-Origin'标头存在于所请求的资源上。如果不透明响应满足您的需求,请将请求模式设置为“no-cors”以在禁用 CORS 的情况下获取资源。
import Koa from 'koa';
import parser from 'koa-bodyparser';
import cors from 'koa-cors';
import proxy from 'koa-proxies';
import { Server } from 'socket.io';
import http from 'http';
import dotenv from 'dotenv';
import router from './router';
import connectDb from './models/_index';
import { ioConnect } from './controllers/socketHandler.controller';
dotenv.config();
const PORT = process.env.PORT || 5001;
const app = new Koa();
app.use(cors({
origin: process.env.CLIENT_URL,
methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
headers: ['Origin', 'Content-Type', 'Accept', 'Authorization'],
credentials: true,
}));
app.use(parser());
app.use(router.routes());
app.use(router.allowedMethods());
我们可以登录,但对于其他所有路线,我都会收到 cors 错误。我已经取消了身份验证,并尝试设置代理,但对我们设置的 socket.io 造成了严重破坏。不知何故,标题未通过 cors 正确设置。
您需要将服务器上的
Access-Control-Allow-Origin
标头设置为与请求源自的 Origin 相同的值。这样,当浏览器执行预检请求时,您的服务器将在响应中返回此标头,从而允许您的 Origin 访问所请求的资源。