javascript 没有 'Access-Control-Allow-Origin' header 存在于 heroku 服务器请求的资源上

javascript No 'Access-Control-Allow-Origin' header is present on the requested resource with heroku server

我已经部署了一个 nodejs + express 服务器到 heroku,当我尝试使用它时我得到了错误 -
“从来源 'http://localhost:3000' 访问 'https://harel-shop-backend.herokuapp.com/auth/autologin' 处的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP 正常状态。”
在浏览器中。

这是我的 app.ts 代码 -

import './db/mongoose';
import HttpError from './model/http-error';
import cors from 'cors';

import authRoutes from './routes/auth.router';
import productRouter from './routes/product.router';

const app = express();
app.use(cors());

app.use(express.json());
app.use(express.urlencoded({ extended: false }));

app.use((req, res, next) => {
  res.setHeader('Access-Control-Allow-Origin', '*');
  res.setHeader(
    'Access-Control-Allow-Headers',
    'Origin, X-Requested-With, Content-Type, Accept, Authorization ,AuthorizationRefresh ,user'
  );
  res.setHeader(
    'Access-Control-Allow-Methods',
    'OPTIONS, GET, POST, PATCH, DELETE'
  );

  next();
});


app.use('/auth', authRoutes);
app.use('/products', productRouter);

app.use((req, res, next) => {
  throw new HttpError('couldnt find this route', 404);
});

app.use((error: any, req: Request, res: Response, next: NextFunction) => {
  if (res.headersSent) {
    return next(error);
  }
  res.status(error.code || 500);
  res.json({ message: error.message || 'an unknown error occurred' });
});


app.listen(3030, () => {
  console.log('server is running');
});

我曾尝试在我的浏览器中安装扩展以禁用 cors 但没有成功,
我尝试添加 ('Access-Control-Allow-Origin', '*') 但也没有用。
安装了 cors 包并在第 10 行使用,也没有工作

所以我解决了这个问题,我做了两件事,

  1. 使用 npm build 创建了一个 dist 文件夹并添加了一个 Procfile 并在其中写入 - web: node dist/app.js
  2. 我还在app.listen函数中添加了process.env.PORT || 3030