【发布时间】: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