前后端跨域问题:
第一次写前端+数据库+后端这样从前到后流程的项目,经验不足,在网上借鉴了很多,终于有点点眉目。
前端框架:vue
请求:axios
数据库:mongodb
后端:nodejs + express框架
在项目过程中,遇到跨域提示,前端 http://localhost:8081 访问后端 http://localhost:8085 ,翻来覆去找了半天,试了网上的几种办法(后面会详说)都没有用
后来脑子里突然闪过一句话,就是这个,万恶由它引起:
将它注释掉就好啦。
写的时候知道这句话是解决跨域问题的,那为什么加上它反而报错了呢。我还真是没有百思而不得其解。
好啦,下面我记录一下我在网上搜到的其他解决跨域的办法,虽然解药不对我的症状,但我总觉得有一天会用到的。
1. 安装cors插件,因为我用的是express框架,所以这个办法用起来非常舒爽。
(1)安装cors: npm install cors express --save
(2) 然后在文件中引用:
var cors = require('cors');
var express = require('express');
var server = express();
server.use(cors());
2. 设置请求响应的header
var express = require('express');
express.all("*", function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
res.header("X-Powered-By","3.2.1");
if(req.method=="PTIONS") res.send(200);
else next();
});