新版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的Ajax跨域请求原理概述及实例
Apr 26 Javascript
JS.GetAllChild(element,deep,condition)使用介绍
Sep 21 Javascript
随鼠标上下滚动的jquery代码
Dec 05 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
Aug 15 Javascript
详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现
Mar 11 Javascript
jquery点赞功能实现代码 点个赞吧!
May 29 jQuery
详解angularjs实现echart图表效果最简洁教程
Nov 29 Javascript
js canvas实现写字动画效果
Nov 30 Javascript
JS使用百度地图API自动获取地址和经纬度操作示例
Apr 16 Javascript
vue elementUI table 自定义表头和行合并的实例代码
May 22 Javascript
Vue实现简单的跑马灯
May 25 Javascript
Vue使用screenfull实现全屏效果
Sep 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/10/24 PHP
PHP 实现explort() 功能的详解
2013/06/20 PHP
PHP实现显示照片exif信息的方法
2014/07/11 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
在第一个input框内输入内容.textarea自动得到第一个文件框的值的javascript代码
2007/04/20 Javascript
JavaScript入门教程(2) JS基础知识
2009/01/31 Javascript
javascript for循环设法提高性能
2010/02/24 Javascript
jQuery EasyUI 开源插件套装 完全替代ExtJS
2010/03/24 Javascript
JavaScript中valueOf函数与toString方法深入理解
2012/12/02 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
JS表格组件神器bootstrap table详解(基础版)
2015/12/08 Javascript
js省市联动效果完整实例代码
2015/12/09 Javascript
jquery对象与DOM对象转化
2017/02/08 Javascript
一个简易时钟效果js实现代码
2020/03/25 Javascript
vue 项目如何引入微信sdk接口的方法
2017/12/18 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
微信小程序js文件改变参数并在视图上及时更新【推荐】
2018/06/11 Javascript
Javascript迭代、递推、穷举、递归常用算法实例讲解
2019/02/01 Javascript
jQuery HTML设置内容和属性操作实例分析
2020/05/20 jQuery
ant design vue 表格table 默认勾选几项的操作
2020/10/31 Javascript
python动态加载变量示例分享
2014/02/17 Python
python实现读取命令行参数的方法
2015/05/22 Python
python并发2之使用asyncio处理并发
2017/12/21 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
Selenium定时刷新网页的实现代码
2018/10/31 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
2020/02/09 Python
Craghoppers德国官网:户外和旅行服装
2020/02/14 全球购物
工业设计专业个人求职信范文
2013/12/28 职场文书
人民教师求职自荐信
2014/03/12 职场文书
大学学生会竞选演讲稿
2014/04/25 职场文书
售后客服工作职责
2014/06/16 职场文书
2014年无财产无子女离婚协议书范本
2014/10/09 职场文书
银行自荐信怎么写
2015/03/05 职场文书