心血来潮想用node express+vue写一个管理系统全面一直很顺利,直到前后端联调的时候,前端没问题,后端接口用postman测试也没问题TMD一直报304,一句“ 脏话”
这是报错 Access to XMLHttpRequest at 'http://localhost:3000/test' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
后端我也设置了防止跨域的,因为是搞了玩的所有不是很严谨
app.use((req, res, next)=> {
res.header("Access-Control-Allow-Origin", req.headers.origin); // 设置允许来自哪里的跨域请求访问(值为*代表允许任何跨域请求,但是没有安全保证)
res.header("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS"); // 设置允许接收的请求类型
res.header("Access-Control-Allow-Headers", "Content-Type,request-origin"); // 设置请求头中允许携带的参数
res.header("Access-Control-Allow-Credentials", "true"); // 允许客户端携带证书式访问。保持跨域请求中的Cookie。注意:此处设true时,Access-Control-Allow-Origin的值不能为 '*'
res.header("Access-control-max-age", 1000); // 设置请求通过预检后多少时间内不再检验,减少预请求发送次数
next();
})
但是好像没生效,马德害我一直在哪里折腾。最后实在没招了搜了一下报错,仔细看了一下原来是跨域,我靠。直接把自己写的垃圾代码删除了。搜了一下看看有没有插件,结果还真的有跨域插件。
第一步 npm install cors
然后在app.js 里面定义
const cors = require('cors')
app.use(cors())