新版vue-cli模板下本地开发环境使用node服务器跨域的方法


Posted in Javascript onApril 03, 2018

背景

我们都知道浏览器有一个既核心也最基本的安全功能,即同源策略。同源分别是:协议,域名,端口。如果浏览器访问服务器不同源的话,就会访问不到数据。那开发中常常访问的服务器不同源,那么可以借助一个服务器当做中介来访问需要访问的服务器从而获得数据。因为同源策略是浏览器的安全机制,而服务器之间是不受此限制的。之前vue-cli模板build文件夹下有dev-serve.js文件,可以在此文件中配置本地node服务器实现跨域,现在的模板下没有此文件,那我们该如何使用node跨域呢?不逼逼,上方法。

具体操作

1、在build文件夹下面新建一个dev-serve.js文件,其中添加代码如下:

'use strict'
const express = require('express')
const axios = require('axios')

module.exports = function () {
  let app = express()
  app.get('/api/getDiscList', (req, res) => {
    let url = '请求地址'
    axios.get(url, {
      headers: {
      //这里请求的是QQ音乐的接口,带上下面参数是为了骗服务器是自己人
        referer: 'https://c.y.qq.com/',
        host: 'c.y.qq.com'
      },
      params: req.query
    }).then((response) => {
      res.json(response.data)
    }).catch((e) => {
      console.log(e)
    })
  })

  app.listen(3000)
}

2、在build.js中引入并且运行只需要在最上面添加 require('./dev-serve.js')()

当我们npm run dev运行项目的时候,node服务器就会启动自动监听3000端口

3.本地发送ajax请求,就可以通过node服务器访问到数据,请求我使用的是axios。请求如下:

import axios from 'axios'
function getDiscList() {  

  const data = {
    //...请求参数
  }
  return axios.get('/api/getDiscList', {
    params: data
  }).then(res => {
    return Promise.resolve(res.data)
  })
}

请求到数据如下:

新版vue-cli模板下本地开发环境使用node服务器跨域的方法

新版vue-cli模板下本地开发环境使用node服务器跨域的方法

结语

如此就简单实现了本地node服务器跨域,在开发环境下是可以请求到数据,但是npm run build 打包成静态文件后就失效了。路还很长,还请各位不吝赐教。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript语言中的Literal Syntax特性分析
Mar 08 Javascript
Jquery弹出层插件ThickBox的使用方法
Dec 09 Javascript
jQuery实现的AJAX简单弹出层效果代码
Nov 26 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
Jun 25 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
Jul 25 Javascript
正则表达式,替换所有HTML标签的简单实例
Nov 28 Javascript
JS实现小球的弹性碰撞效果
Nov 11 Javascript
让网站自动生成章节目录索引的多个js代码
Jan 07 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
Oct 19 Javascript
微信小程序中遇到的iOS兼容性问题小结
Nov 14 Javascript
关于JS解构的5种有趣用法
Sep 05 Javascript
nestjs返回给前端数据格式的封装实现
Feb 22 Javascript
使用react实现手机号的数据同步显示功能的示例代码
Apr 03 #Javascript
JS遍历DOM文档树的方法实例详解
Apr 03 #Javascript
JavaScript同源策略和跨域访问实例详解
Apr 03 #Javascript
vue 组件中slot插口的具体用法
Apr 03 #Javascript
react 实现页面代码分割、按需加载的方法
Apr 03 #Javascript
深入浅析Vue中的slots/scoped slots
Apr 03 #Javascript
使用FileReader API创建Vue文件阅读器组件
Apr 03 #Javascript
You might like
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
在线编辑器中换行与内容自动提取
2009/04/24 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
2013/12/18 Javascript
在Ubuntu上安装最新版本的Node.js
2014/07/14 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
JavaScript iframe数据共享接口实现方法
2016/01/06 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
js实现上传图片及时预览
2016/05/07 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
js实现文章目录索引导航(table of content)
2020/05/10 Javascript
Vue实现购物车实例代码两则
2020/05/30 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
Python中的异常处理学习笔记
2015/01/28 Python
进一步探究Python的装饰器的运用
2015/05/05 Python
python制作花瓣网美女图片爬虫
2015/10/28 Python
django 在原有表格添加或删除字段的实例
2018/05/27 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
Python函数中的可变长参数详解
2019/09/12 Python
Python操作redis和mongoDB的方法
2019/12/19 Python
爬虫代理的cookie如何生成运行
2020/09/22 Python
味多美官网:蛋糕订购,100%使用天然奶油
2017/11/10 全球购物
英国运动风奢侈品购物网站:Maison De Fashion
2020/08/28 全球购物
广播电视新闻学专业应届生求职信
2013/10/08 职场文书
校园网站的创业计划书范文
2013/12/30 职场文书
怎么写好自荐书
2014/03/02 职场文书
计算机多媒体专业自荐信
2014/07/04 职场文书
2014年中秋寄语
2014/08/11 职场文书
镇创先争优活动总结
2014/08/28 职场文书
组织生活会发言材料
2014/12/15 职场文书
2014年结对帮扶工作总结
2014/12/17 职场文书
岁月神偷观后感
2015/06/11 职场文书
小学运动会开幕词
2016/03/04 职场文书
对PyTorch中inplace字段的全面理解
2021/05/22 Python
python plt.plot bar 如何设置绘图尺寸大小
2021/06/01 Python