在Koa服务器中设置origin后出现CORS错误

问题描述 投票:0回答:1

我已经如下设置了我的服务器,将原点指定为我们的 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 正确设置。

javascript node.js cors koa
1个回答
0
投票

您需要将服务器上的

Access-Control-Allow-Origin
标头设置为与请求源自的 Origin 相同的值。这样,当浏览器执行预检请求时,您的服务器将在响应中返回此标头,从而允许您的 Origin 访问所请求的资源。

© www.soinside.com 2019 - 2024. All rights reserved.