新版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 相关文章推荐
爱恋千雪-US-AscII加密解密工具(网页加密)下载
Jun 06 Javascript
JavaScript加强之自定义event事件
Sep 21 Javascript
纯js简单日历实现代码
Oct 05 Javascript
js实现div的切换特效上一个下一个
Feb 11 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
May 05 Javascript
JS创建类和对象的两种不同方式
Aug 08 Javascript
Node.js 应用跑得更快 10 个技巧
Apr 03 Javascript
JavaScript中split与join函数的进阶使用技巧
May 03 Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
Nov 22 Javascript
写一个Vue Popup组件
Feb 25 Javascript
详解微信小程序之一键复制到剪切板
Apr 24 Javascript
Vue自定义指令结合阿里云OSS优化图片的实现方法
Nov 12 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加密解密函数详解
2015/10/28 PHP
php去除二维数组的重复项方法
2015/11/03 PHP
php实现的递归提成方案实例
2015/11/14 PHP
PHP实现的简单适配器模式示例
2017/06/22 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
从URL中提取参数与将对象转换为URL查询参数的实现代码
2012/01/12 Javascript
event对象获取方法总结在google浏览器下测试
2013/11/03 Javascript
javascript实现iframe框架延时加载的方法
2014/10/30 Javascript
JavaScript常用脚本汇总(三)
2015/03/04 Javascript
js实现分割上传大文件
2016/03/09 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
jQuery添加options点击事件并传值实例代码
2016/05/18 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
2017/09/05 Javascript
vue中的router-view组件的使用教程
2018/10/23 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
JavaScript获取时区实现过程解析
2020/09/24 Javascript
[03:17]史诗级大片应援2018DOTA2国际邀请赛 致敬每一位坚守遗迹的勇士
2018/07/20 DOTA
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
python 3.6.2 安装配置方法图文教程
2018/09/18 Python
VSCode Python开发环境配置的详细步骤
2019/02/22 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
python内打印变量之%和f的实例
2020/02/19 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
乌克兰时尚鞋子和衣服购物网站:Born2be
2018/05/24 全球购物
高三自我鉴定
2013/10/23 职场文书
电子技术专业中专生的自我评价
2013/12/17 职场文书
全国道德模范事迹
2014/02/01 职场文书
市场调查策划方案
2014/06/10 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
初中优秀学生评语
2014/12/29 职场文书
云冈石窟导游词
2015/02/04 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
2016年法制宣传月活动总结
2016/04/01 职场文书