新版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 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
May 18 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
Feb 20 Javascript
jQuery简单入门示例之用户校验demo示例
Jul 09 Javascript
动态加载css方法实现和深入解析
Jan 18 Javascript
jQuery窗口拖动功能的实现代码
Feb 04 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
Oct 31 Javascript
p5.js入门教程之鼠标交互的示例
Mar 16 Javascript
详解vue.js下引入百度地图jsApi的两种方法
Jul 27 Javascript
vue中v-text / v-html使用实例代码详解
Apr 02 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
Aug 10 Javascript
在antd4.0中Form使用initialValue操作
Nov 02 Javascript
Node与Python 双向通信的实现代码
Jul 16 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根据身份证号码计算年龄的实例代码
2014/01/18 PHP
PHP书写格式详解(必看)
2016/05/23 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
PHP实现中国公民身份证号码有效性验证示例代码
2017/05/03 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
JQuery SELECT单选模拟jQuery.select.js
2009/11/12 Javascript
Javascript面向对象设计一 工厂模式
2011/12/20 Javascript
javascript中数组方法汇总
2015/07/07 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
2015/10/27 Javascript
jQuery实现的无限级下拉菜单功能示例
2016/09/12 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
微信小程序之发送短信倒计时功能
2017/08/30 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
深入剖析JavaScript instanceof 运算符
2019/06/14 Javascript
JavaScript获取某一天所在的星期
2019/09/05 Javascript
微信小程序使用echarts获取数据并生成折线图
2019/10/16 Javascript
Python中的多重装饰器
2015/04/11 Python
Python批量修改文本文件内容的方法
2016/04/29 Python
通过python+selenium3实现浏览器刷简书文章阅读量
2017/12/26 Python
python如何使用unittest测试接口
2018/04/04 Python
python 巧用正则寻找字符串中的特定字符的位置方法
2018/05/02 Python
python实现NB-IoT模块远程控制
2018/06/20 Python
python调用tcpdump抓包过滤的方法
2018/07/18 Python
Python使用Pandas库实现MySQL数据库的读写
2019/07/06 Python
Django项目中使用JWT的实现代码
2019/11/04 Python
Win下PyInstaller 安装和使用教程
2019/12/25 Python
python如何操作mysql
2020/08/17 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
2012/12/28 HTML / CSS
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
师范毕业生求职信
2014/07/11 职场文书
幼儿园门卫安全责任书
2015/05/08 职场文书
python实现求纯色彩图像的边框
2021/04/08 Python
解决Pytorch半精度浮点型网络训练的问题
2021/05/24 Python