当我在页面中设置会话并重定向到该会话已删除的Web应用程序的另一个页面时,我正在使用Express作为我的React应用程序的后端
这是我的快递代码:
async function createUser(req, res, next) {
try {
let parameters = req.body
let user = await models.User.create({
displayName: parameters.displayName,
phone: parameters.phone,
sex: parameters.sex,
password: parameters.password,
})
req.session.user = user.dataValues;
res.json({
status: 'success',
user,
})
}
这是我的反应代码:
onSubmit = (event) => {
event.preventDefault()
request.post('/newuser',{
displayName:this.state.name,
phone:this.state.phone,
password:this.state.password,
sex:this.state.sex
})
.then(function(response){
this.props.authenticate(true)
this.setState({
auth:true
})
}.bind(this))
}
这是我的react render方法:
render(){
if(this.state.auth)
return <Redirect to='/profile' />;
}
所有这些描述了当我重定向到个人资料页面时,我没有任何会话并且所有希望都消失了:))
请帮助我解决这个问题。
答案 0 :(得分:-1)
在使用axios发送请求时,您应该执行以下操作:
在前面(反应): 您应该在axios设置中设置withCredentials:true:
import axios from 'axios'
import config from '../../config'
const request = axios.create({
baseURL: config.url,
timeout: 20000,
withCredentials: true,
});
export default request
在Back(节点/ Express)中,:您应该将此代码添加到cors
const express = require('express')
const cors = require('cors')
app.use(cors({
origin:['http://localhost:9520']//your front url,
methods:['GET','POST'],
credentials: true
}))
我通过搜索发现了问题,但感谢您的帮助:))