1、首先在本地全局安装 vue-cli

vue-cli网址:https://github.com/vuejs/vue-cli

先在控制台安装 全局vue-clis

npm install -g vue-cli

2、初始化项目(vuecli 项目名称)

vue init webpack vuecli  //vuecli是项目名

也可以在空项目中输入 vue init webpack 将项目变为 vue-cli项目

3、在vuecli 项目中安装依赖文件

npm install

4、在vuecli 项目中安装axios

npm install axios -D

5、在vuecli 项目中安装http-proxy-middleware中间件作为代理

npm install -S http-proxy-middleware

为什么要http-proxy-middleware做为中间代理?

原因就是因为客户端请求服务端的数据是存在跨域问题的,而服务器和服务器之间可以相互请求数据,是没有跨域的概念(如果服务器没有设置禁止跨域的权限问题),也就是说,我们可以配置一个代理的服务器可以请求另一个服务器中的数据,然后把请求出来的数据返回到我们的代理服务器中,代理服务器再返回数据给我们的客户端,这样我们就可以实现跨域访问数据啦。

6、在vuecli 项目的找到src/main.js中引入axios

import Vue from 'vue'
import App from './App'
import router from './router'
import axios from 'axios' // 1、在这里引入axiosVue.prototype.$
ajax
= axios; // 2、在vue中使用axios Vue.config.productionTip = false /* eslint-disable no-new */ new Vue({ el: '#app', router, template: '<App/>', components: { App } })

7、为http-proxy-middleware这个中间件进行本地代理配置,在vuecli 项目中找到config/index.js

'use strict'
// Template version: 1.3.1
// see http://vuejs-templates.github.io/webpack for documentation.

const path = require('path')module.exports = {dev: {// PathsassetsSubDirectory: 'static',assetsPublicPath: '/',proxyTable: {'/api': {target:'http://api.qingyunke.com/api.php', // 你请求的第三方接口changeOrigin:true, // 在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题pathRewrite:{  // 路径重写,'^/api': '/api'  // 替换target中的请求地址,也就是说以后你在请求http://api.jisuapi.com/XXXXX这个地址的时候直接写成/api即可。
        }}},
...剩下代码省略

如果不使用  http-proxy-middleware 这个中间件就会报如下错误:

这个错误就是因为跨域所引起的

8、在vuecli 项目的找到src/components/HelloWorld.vue,代码修改如下

<template>  <div>  <p>    请输入您的问题:    <input v-model="question" @keyup.enter="getAnswer()">  </p>    <p >{{ answer }}</p>  </div></template><script>  import '../../static/js/lodash.min';    export default {        name: "

HelloWorld

",        data(){          return {            question:"",            answer:'有问必答'          }        },        methods:{          getAnswer: _.debounce(function () {            var vm = this;            vm.answer = '让我想想...';            var url="?key=free&appid=0&msg="+vm.question;//这里是拼接url

            this.$ajax.get('/api'+url)// 这里就是刚才的config/index.js中的/api              .then(function(response) {                vm.answer = _.capitalize(response.data.content);                console.log(response);              })              .catch(function(error) {                vm.answer = '发生了错误,不能调用该应用程序接口' + error              })          },1000)        }    }</script>

<style scoped>

</style>

9、因为在新版的vue-cli的package.json中webpack-dev-server没有设置--open,所以打开package.json文件在”scripts”属性中的”dev”属性中手动添加--open,如下代码所示

"scripts": {"dev": "webpack-dev-server --open --inline --progress --config build/webpack.dev.conf.js","start": "npm run dev","unit": "jest --config test/unit/jest.conf.js --coverage","e2e": "node test/e2e/runner.js","test": "npm run unit && npm run e2e","lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs","build": "node build/build.js"},

10、在cmd控制台中输入npm run dev 启动服务。效果图如下:

npm install

转载于:https://www.cnblogs.com/zwwbky/p/10176969.html

使用vue-cli+axios配置代理进行跨域访问数据相关推荐

  1. 从实例入手学习使用vue+axios配置代理进行跨域访问百度音乐API

    场景 如果要使用axios直接进行跨域访问是不可以的,这是就需要配置代理了,为什么要配置代理呢? 原因就是因为客户端请求服务端的数据是存在跨域问题的,而服务器和服务器之间可以相互请求数据,是没有跨域的 ...

  2. vue如何通过Nginx代理做到跨域访问API接口 解决404报错

    最近和vue对接接口发现总是访问不到 404 发现原因是 vue 使用代理 访问接口的时候前面加了一层 例如 访问 api/index/index 实际是 api/api/index/index 找到 ...

  3. Vue之通过代理设置跨域访问

    我们使用脚手架创建的项目,可以在config项目中看到 其中我们打开index.js文件 'use strict' // Template version: 1.3.1 // see http://v ...

  4. jq跨域代理_jQuery 跨域访问问题解决方法

    jQuery 跨域访问问题解决方法 更新时间:2009年12月02日 01:25:19   作者: 浏览器端跨域访问一直是个问题, 多数研发人员对待js的态度都是好了伤疤忘了疼,所以病发的时候,时不时 ...

  5. vue cli配置代理解决跨域问题

    内容 跨域问题 解决跨域问题 vue cli配置代理 跨域问题 是由于违背了同源策略,同源策略规定了协议名.主机名.端口号必须一致 我们目前所处的位置是http localhost 8080,我们想向 ...

  6. No ‘Access-Control-Allow-Origin‘ header is present on the requested resource Vue配置代理解决跨域问题

    前言 在进行web开发进行数据请求的时候常常会遇到跨域问题导致无法请求数据. 如果采用如下方法向http://localhost:4000服务器发送getStudents进行接口数据请求,在后端没有处 ...

  7. vue中通过第三方代理解决跨域问题

    最近在学node,遇到了跨域的问题,来记录下方法 首页服务端的框架是通过express-generator 搭建起来的 npm install -g  express-generator 具体接下来的 ...

  8. react脚手架配置代理解决跨域问题

    一.问题描述: 控制台报错,出现跨域问题 二.解决方案 配置代理: 第一种配置方式: 在package.json中追加如下配置 "proxy":"http://local ...

  9. axios 跨域传参_在Vue中如何使用axios跨域访问数据

    vue.js学习之 跨域请求***与axios传参 一:跨域请求*** 1:打开config/index.jsmodule.exports{ dev: { } } 在这里面找到proxyTable{} ...

  10. axios get怎么还会显示跨域_在Vue中如何使用axios跨域访问数据

    最近在项目中需要用到axios,所以就恶补一下这个axios到底是什么东东.越来它是vue-resource的替代品,官网也说了,以后都用axios, vue-resource不在维护.那么这个axi ...

最新文章

  1. linux挂载卸载不掉 umount target is busy
  2. 数据结构乐智教学百度云_网易云课堂 - 我的职业课堂
  3. 联想拯救者开机自动修复_设计师群体的创作利器,联想拯救者Y9000X 2021图赏
  4. 求1/2+1/4+...+1/n
  5. 区块链,供应链金融的新机遇
  6. Angular 2与TypeScript概览
  7. 三星突然发布Galaxy S10 Lite和Note 10 Lite:有不同也有所同
  8. python numpy安装
  9. 运维工程师主要工作是做什么?
  10. 渗透测试-Kali Linux 正确清理垃圾的姿势
  11. 微分方程模型_MIT—微分方程笔记03 一阶线性常微分方程解法
  12. C语言常见缩写和英文
  13. html无法访问页面,为什么网页无法访问?
  14. P1757 通天之分组背包
  15. STM32和ESP32- 主讲esp
  16. 3分钟带你彻底弄懂数码管的段选与位选
  17. 原子核的奥秘:核力的发现
  18. Windows live Writer 发布博文
  19. 骑士精神(双向深搜+meet in the middle)
  20. Oracle 漏洞修复方案

热门文章

  1. String 也能做性能优化,我只能说牛逼!
  2. 如何准备 Java 初级和高级的技术面试
  3. 厉害了!如何在 Gihub 快速搜索开源项目?
  4. Facebook反垃圾实践:人工治理与机器算法齐飞
  5. 千万级用户直播APP——服务端结构设计和思考
  6. 重大安全事件 | Ubuntu 16.04.4 暴本地提权漏洞
  7. Android 高效调试神器 JRebel
  8. 樊登读书赋能读后感_一场人均4万元的知识盛宴,樊登直播首秀到底讲了什么?...
  9. shell基础之综合练习
  10. Vue笔记:使用 axios 中 this 指向问题