express解决跨域

最近开始搭建个人博客, 遇到的第一个问题是跨域问题, 因为最后合并到一个项目里需要临时跨域. 需要解决下临时跨域的问题.

Vue.axios.get('http://192.168.4.14:3000/index').then((response) => {
  console.log(response.data)
}

解决跨域问题的方法有很多, 此次添加中间件设置header的方式解决跨域

//设置跨域访问
router.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
    res.header("X-Powered-By",' 3.2.1')
    res.header("Content-Type", "application/json;charset=utf-8");
    next();
});

添加一个中间件在所有需要跨域的路由之前即可


例:
后台设置index路由

const express = require('express');
const router = express.Router();

//设置跨域访问
router.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
    res.header("X-Powered-By",' 3.2.1')
    res.header("Content-Type", "application/json;charset=utf-8");
    next();
});

/* GET home page. */
router.get('/index', function(req, res, next) {
  // res.render('index', { title: 'Express' });
    res.send('跨域请求')
});

module.exports = router;

前端使用 axios请求

const cityGuess = () => Vue.axios.get('http://localhost:3000/index').then((response) => {
  console.log(response.data)
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (全局解决)核心代码://设置跨域访问app.all('*', function(req, res, next) ...
    Husbin阅读 6,384评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,810评论 19 139
  • Address:https://www.zybuluo.com/XiangZhou/note/208532 Exp...
    天蠍蒗漫阅读 13,912评论 2 55
  • 1. 简介 这篇文章主要的目的是分析理解express的源码,网络上关于源码的分析已经数不胜数,这篇文章准备另辟蹊...
    没事造轮子阅读 5,185评论 0 8
  • 心灵自由第八期第15篇作业 昨天去一家理发店,想想也许可以改个发型。设计师给了我一些建议,比如脸型哪里宽了线条不够...
    何偀阅读 2,578评论 0 0

友情链接更多精彩内容