我目前正在創建一個有角度的 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");
})
這個問題還有其他解決方案嗎?
uj5u.com熱心網友回復:
在app.use(cors());可能解決問題后添加以下行
app.options('*', cors());
你也可以把特定的 ip 地址代替 *.
uj5u.com熱心網友回復:
我現在找到了解決我的問題的方法。我必須在 server.setConfig() 函式中添加這樣的代碼:
server.setConfig((app) => {
var cors = require('cors');
app.use(cors({origin: `*`}));
app.options('https://localhost:4200', cors());
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/393247.html
下一篇:使用影像處理檢測近水平線
