我正在尝试开发一个MERN项目。我在server.js
的{{1}}文件中的代码如下。
express.js
我使用const express = require('express');
const bodyParser = require('body-parser');
const addressroute = require('./api/routes/address');
const userroute = require('./api/routes/user');
const mongoose = require('mongoose');
mongoose.set('useCreateIndex', true);
mongoose.connect('mongodb://localhost/addresses', { useNewUrlParser: true });
const db = mongoose.connection;
var cors = require('cors');
let app = express();
app.use(bodyParser.urlencoded( { extended:true } ));
app.use(bodyParser.json());
app.use('/api/address', addressroute);
app.use('/api/users', userroute);
app.use(cors());
app.options('*', cors());
const PORT = process.env.PORT || 4000;
app.listen(PORT);
此命令安装了CORS。
我遇到了错误。
npm install cors --save
答案 0 :(得分:2)
尝试将cors
移到路线上方
const app = express();
const PORT = process.env.PORT || 4000;
app.use(bodyParser.urlencoded( { extended:true } ));
app.use(bodyParser.json());
app.use(cors());
app.use('/api/address', addressroute);
app.use('/api/users', userroute);
app.listen(PORT);
答案 1 :(得分:0)
尝试使用以下代码段:
app.all('/*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});
答案 2 :(得分:0)
// Try to use the following code
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
答案 3 :(得分:0)
在定义路由之前,应移动要执行的CORS中间件(app.use(cors());
)。在您在此处添加的代码段中,未在每个请求上调用CORS中间件
答案 4 :(得分:0)
应该在路由之前启用或包含Cors。
<!DOCTYPE html>
<html>
<head>
<style id="style"></style>
</head>
<body>
<div>abc</div>
<p>123</p>
<script>
const style = document.querySelector("#style");
const {sheet} = style;
sheet.insertRule("div{color:blue}", 0);
sheet.addRule("p", "color:green", 1);
console.log(style.textContent);
style.textContent = "";
console.assert(style.textContent.length > 0, [style.textContent]); // assertion failed
console.log(style.textContent === ""); // true
</script>
</body>
</html>
答案 5 :(得分:-1)
从前端调用api时添加 '访问控制允许来源':'*' 在请求标头中。