【发布时间】:2020-07-29 12:15:19
【问题描述】:
我试图将 req 发送到服务器,但被“CORS 策略阻止”我让 ngrok 在后台运行,我在 axios 中使用它的链接作为 baseUrl,我使用了 app.use(cors()), "proxy":"link' 在前面部分,我也尝试过 http-proxy-middleware,但我仍然遇到 CORS 问题
http-proxy
----------
app.use(
proxy('/auth/google', {target: 'http://localhost:2000', changeOrigin: true})
);
app.use(
proxy('/api/**', {target: 'http://localhost:2000', changeOrigin: true})
);
Express
--------
require('dotenv').config();
require('./server/models/Query');
require('./server/models/User');
const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const cors = require('cors');
const keys = require('./server/config/keys');
const authRoutes = require('./server/routes/authRoutes');
const queryRoutes = require('./server/routes/queryRoutes');
const feedRoutes = require('./server/routes/feedRoutes');
const app = express();
app.use(bodyParser.json());
app.use(authRoutes);
app.use(queryRoutes);
app.use(feedRoutes);
mongoose.connect(process.env.MONGO_URI, {
useNewUrlParser: true,
useCreateIndex: true,
});
app.use(cors());
const PORT = process.env.PORT || 2000;
app.listen(PORT);
authRoute
---------
router.post('/signup', async (req, res) => {
const {email, password, type, fName, lName, city} = req.body;
console.log('body from signup', res.body);
try {
const user = new User({
type,
fName,
lName,
city,
email,
});
await user.save();
const token = jwt.sign({userId: user._id}, process.env.COOKIE_KEY);
console.log(token);
res.send({token});
} catch (err) {
return res.status(422).send(err.message);
}
});
【问题讨论】: