Я пытаюсь настроить файлы cookie в моем приложении Express и React, сервер Express размещен на порту 8000, а приложение React размещено на порту 3000. На стороне сервера, когда я пытаюсь отправить ответ на клиент, я продолжаю получать 500: Internal Server Error
.
Я думаю, что это проблема с Cors, но я не уверен, что.
Мой express код сервера
const express = require('express'),
cors = require('cors'),
const app = express()
// other requirements and stuff not pertaining to cookies
app.use(require("express-session")({
secret: process.env.LOGIN_SERVER_SECRET,
resave: false,
saveUninitialized: false,
cookie: {
httpOnly: false,
secure: false
}
}));
const corsOptions = {
origin: 'http://localhost:3000',
methods: "GET,HEAD,POST,PATCH,DELETE,OPTIONS",
credentials: true,
allowedHeaders: "Content-Type, Authorization, X-Requested-With"
}
app.options("*", cors(corsOptions))
app.get("/api/cookie", cors(corsOptions), (req, res) => {
const options = {
secure: false,
httpOnly: false,
domain: "http://localhost:3000"
}
return res
.cookie("cookieName", "cookieValue", options)
.status(200)
.send("cookie sent")
})
Я пытаюсь получить файл повара ie из моего файла приложения. js в методе жизненного цикла componentDidMount (), затем console.logging ответа, но ответ - это просто 500: Internal Server Error
, о котором я говорил. У меня также есть прокси-сервер между ними.
Вот мой компонент приложения React
import React from 'react'
class App extends React.Component {
state = {}
componentDidMount = () => {
fetch('/api/cookie', {credentials:'include'})
.then(response => {console.log(response)})
.catch(err => {console.log(error)})
}
render() {
return (
// routes to pages
)
}
}