#node.js #axios #cors
#node.js #axios #cors
Вопрос:
После входа в систему server.js , в случае успеха отображается компонент React. Я хочу получать информацию о пользователе из компонента React.
Сервер использует порт 5000, а клиент — 3000. Клиентский компонент получает информацию следующим образом.
const Main = () => {
async function makeGetRequest() {
let res = await axios.get('http://localhost:5000/auth/google/callback');
let data = res.data;
console.log(data, 'data');
}
makeGetRequest();
return (
<div>
<h2>Main Page</h2>
Main Page
</div>
);
};
export default Main;
Я знаю, что в express есть cors, и пытался использовать его server.js
, но это не работает.
Я пытался использовать отдельные параметры cors и cors, но это не работает.
// server.js
const app = express();
const corsOptions = {
origin: 'http://localhost:5000',
credentials: true,
};
app.use(cors(corsOptions));
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
res.header(
'Access-Control-Allow-Headers',
'Origin, X-Requested-With, Content-Type, Accept'
);
next();
});
app.use(
session({
secret: process.env.SECRET_CODE,
resave: false,
saveUninitialized: true,
cookie: {
maxAge: 60 * 60 * 1000,
},
})
);
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
app.use('/', indexRouter);
app.use('/auth', authRouter);
app.use('/main', mainRouter);
...
Я получил эти ошибки:
Ответ №1:
Источник cors должен использовать порт 3000, потому что это домен, с которого вы хотите разрешить запросы.
Также вам не нужно устанавливать заголовки cors вручную, cors () обрабатывает это за вас.