与React、Axios、Express一起使用时如何解决CORS错误?

Ama*_*ary 6 node.js cors express reactjs axios

我正在使用 Passport js 进行简单的 twitter 登录,但是在调用 twitter 路由时,出现 CORS 错误。

服务器.js

const express = require("express");
const session = require("express-session");
const dotenv = require("dotenv");
const userLoginRoutes = require("./routes/userLoginRoute");
const cors = require("cors");
const app = express();

app.use(cors());
app.use(function (req, res, next) {
  res.header(
    "Access-Control-Allow-Origin",
    "*"
  ); // update to match the domain you will make the request from
  res.header(
    "Access-Control-Allow-Headers",
    "Origin, X-Requested-With, Content-Type, Accept"
  );
  next();
});
app.get("/api/auth/twitter", passport.authenticate("twitter"));
Run Code Online (Sandbox Code Playgroud)

动作调度在这里

import {
  USER__LOGIN,
  USER__LOGIN__FAILURE,
  USER__LOGIN__SUCCESS,
} from "../constants/loginconstants";

const axios = require("axios");

// login action
export const userLoginAction = () => async (dispatch) => {
  try {
    dispatch({
      type: USER__LOGIN,
    });
    const config = {
      header: {
        "Content-Type": "application/json",
        "Access-Control-Allow-Origin" : "*"
      },
    };
    const { data } = await axios.get(`/api/auth/twitter`, config);
    dispatch({
      type: USER__LOGIN__SUCCESS,
      payload: data,
    });
  } catch (error) {
    dispatch({
      type: USER__LOGIN__FAILURE,
      payload:
        error.response && error.response.data.message
          ? error.response.data.message
          : error.message,
    });
  }
};

Run Code Online (Sandbox Code Playgroud)

在客户端的 package.json 中,

  "proxy": "http://127.0.0.1:3001",
Run Code Online (Sandbox Code Playgroud)

另外,我在网络选项卡中看不到 Access-Control-Allow-Origin,请参阅此处, 在此输入图像描述

设置的时候有什么问题吗Access-Control-Allow-Origin

我不明白,我哪里错了。我用过cors,甚至手动将origin设置为*。

我收到的错误, 错误