【问题标题】:Access to my Node.js Express API has been blocked by CORS policyCORS 策略已阻止访问我的 Node.js Express API
【发布时间】:2022-01-25 01:41:27
【问题描述】:

我目前正在创建一个 Angular Web 应用程序,该应用程序通过 express 与 node.js 后端通信。当我向后端发出 GET 或 POST 请求时,我收到以下错误消息:

Access to XMLHttpRequest at 'http://localhost:9999' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

经过快速研究,我将app.use(cors()) 添加到我的 index.ts 文件中,但它似乎不起作用。这是我的 index.ts 文件:

import { IoContainer } from './core/ioc/ioc.container';
import { LoggerService } from './core/services/logger.service';
import * as express from 'express';
import 'reflect-metadata';
import { InversifyExpressServer } from 'inversify-express-utils';
import { DatabaseService } from './core/services/database.service';
import { appendFile } from 'fs';

const cors = require('cors');

const container = new IoContainer();
container.init();

const logger = container.getContainer().resolve(LoggerService);
const databaseService = container.getContainer().resolve(DatabaseService);

const server = new InversifyExpressServer(container.getContainer());

databaseService.initialize().then(() =>{
    const app = server.build();
    app.use(cors());
    app.listen(9999);
    logger.info("Server listening on port 9999");
}).catch(() =>{
    logger.error("Error while starting express server");
})

这个问题还有其他解决办法吗?

【问题讨论】:

    标签: node.js express cors middleware


    【解决方案1】:

    app.use(cors()); 之后添加以下行可能会解决问题

    app.options('*', cors());

    你也可以用特定的IP地址代替*。

    【讨论】:

    • 我刚加了,可惜没用。
    【解决方案2】:

    我现在找到了解决问题的方法。 我不得不像这样在 server.setConfig() 函数中添加代码:

    server.setConfig((app) => {
        var cors = require('cors');
        app.use(cors({origin: `*`}));
        app.options('https://localhost:4200', cors());
    });
    

    【讨论】:

      猜你喜欢
      • 2021-04-24
      • 2019-11-01
      • 2021-10-15
      • 2019-09-24
      • 2020-05-05
      • 2021-10-11
      • 2019-09-23
      • 1970-01-01
      相关资源
      最近更新 更多