首页 > 解决方案 > CORS 错误:尽管设置了代理,但请求的资源上不存在“Access-Control-Allow-Origin”标头

问题描述

我在上传到 Heroku 的 node JS express 应用程序中使用 npm CORS 包,并且在收到前端的请求时,我一直遇到以下错误:

已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。

这是请求

这是我的节点 js 服务器上的 cors 设置:

const cors = require('cors')
app.use(cors())
app.options('*', cors());

这是我试图在我的节点 js 服务器上请求的方法:以下是发布请求,其中发布了一些股票,以便为 ["stocks"] 中的每只股票返回 5 年历史雅虎财务数据

const getHistoricalStockPrices = async(req, res) => {
  try {
    const {paramsValidated, error} = utils.validateReqParams(req.body, ["stocks"]);
    if(!paramsValidated) {
      return res.status(400).send(error);
    }
    const {stocks} = req.body;
    var fiveYearsBackDate = new Date();
    fiveYearsBackDate.setFullYear(fiveYearsBackDate.getFullYear()-5);
    yahooFinance.historical(
      {
        symbols: stocks.map(stock=>(stock.ticker)),
        from: fiveYearsBackDate,
        to: new Date(),
        period: 'd'
      }, function (err, quotes){
        if (err) { throw err; }
        return res.status(200).send({
          success: true,
          historicalPrices: quotes,
          message: "Historical prices fetched successfully!"
        });
      }
    );
  } catch (error) {
    console.error(error.message);
    return res.status(500).send({
      success: false,
      message: error.message
    });
  }
}

我尝试了很多东西,然后甚至在heroku上设置了一个代理,但仍然遇到同样的错误!这里最好的方法是什么?我应该在 AWS 上上传节点 js 服务器吗?

非常感谢您的指导!阿卡什

标签: node.jsherokucorscors-anywhere

解决方案


推荐阅读