新版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 相关文章推荐
jQuery 开天辟地入门篇一
Dec 09 Javascript
比较搞笑的js陷阱题
Feb 07 Javascript
为EasyUI的Tab标签添加右键菜单的方法
Jul 14 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
Sep 23 Javascript
JavaScript中将数组进行合并的基本方法讲解
Mar 07 Javascript
jQuery实现的右下角广告窗体跟随效果示例
Sep 16 Javascript
Centos7 中 Node.js安装简单方法
Nov 02 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
Jun 28 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
Oct 20 Javascript
关于jQuery里prev()的简单操作代码
Oct 27 jQuery
vue弹窗插件实战代码
Sep 08 Javascript
javascript实现简易的计算器
Jan 17 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获取金书网的书名的实现代码
2010/06/11 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
php 魔术常量详解及实例代码
2016/12/04 PHP
php+Ajax处理xml与json格式数据的方法示例
2019/03/04 PHP
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
优化javascript的执行速度
2010/01/23 Javascript
JQUERY操作JSON实例代码
2010/02/09 Javascript
25个非常棒的jQuery滑块插件和教程小结
2011/09/02 Javascript
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
JavaScript里实用的原生API汇总
2015/05/14 Javascript
使用jquery给指定的table动态添加一行、删除一行
2016/10/13 Javascript
详解照片瀑布流效果(js,jquery分别实现与知识点总结)
2017/01/01 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
如何使用angularJs
2017/05/08 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
JS手机端touch事件计算滑动距离的方法示例
2017/10/26 Javascript
iview table高度动态设置方法
2018/03/14 Javascript
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
2018/10/17 NodeJs
在vue-cli 3中给stylus、sass样式传入共享的全局变量
2019/08/12 Javascript
区分vue-router的hash和history模式
2020/10/03 Javascript
从Python的源码浅要剖析Python的内存管理
2015/04/16 Python
详解Python中break语句的用法
2015/05/14 Python
python 系统调用的实例详解
2017/07/11 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
python 实现矩阵填充0的例子
2019/11/29 Python
基于Python数据结构之递归与回溯搜索
2020/02/26 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
2020/04/20 Python
Python面向对象多态实现原理及代码实例
2020/09/16 Python
python tkinter实现连连看游戏
2020/11/16 Python
Python try except finally资源回收的实现
2021/01/25 Python
html5响应式开发自动计算fontSize的方法
2020/01/13 HTML / CSS
小学生手册家长评语
2014/04/16 职场文书
关于孝道的演讲稿
2014/05/21 职场文书
学校领导班子群众路线整改措施
2014/09/16 职场文书
通报表扬范文
2015/01/17 职场文书
导游词之桂林
2019/08/20 职场文书