使用vue-cli+axios配置代理进行跨域访问数据
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配置代理进行跨域访问数据相关推荐
- 从实例入手学习使用vue+axios配置代理进行跨域访问百度音乐API
场景 如果要使用axios直接进行跨域访问是不可以的,这是就需要配置代理了,为什么要配置代理呢? 原因就是因为客户端请求服务端的数据是存在跨域问题的,而服务器和服务器之间可以相互请求数据,是没有跨域的 ...
- vue如何通过Nginx代理做到跨域访问API接口 解决404报错
最近和vue对接接口发现总是访问不到 404 发现原因是 vue 使用代理 访问接口的时候前面加了一层 例如 访问 api/index/index 实际是 api/api/index/index 找到 ...
- Vue之通过代理设置跨域访问
我们使用脚手架创建的项目,可以在config项目中看到 其中我们打开index.js文件 'use strict' // Template version: 1.3.1 // see http://v ...
- jq跨域代理_jQuery 跨域访问问题解决方法
jQuery 跨域访问问题解决方法 更新时间:2009年12月02日 01:25:19 作者: 浏览器端跨域访问一直是个问题, 多数研发人员对待js的态度都是好了伤疤忘了疼,所以病发的时候,时不时 ...
- vue cli配置代理解决跨域问题
内容 跨域问题 解决跨域问题 vue cli配置代理 跨域问题 是由于违背了同源策略,同源策略规定了协议名.主机名.端口号必须一致 我们目前所处的位置是http localhost 8080,我们想向 ...
- No ‘Access-Control-Allow-Origin‘ header is present on the requested resource Vue配置代理解决跨域问题
前言 在进行web开发进行数据请求的时候常常会遇到跨域问题导致无法请求数据. 如果采用如下方法向http://localhost:4000服务器发送getStudents进行接口数据请求,在后端没有处 ...
- vue中通过第三方代理解决跨域问题
最近在学node,遇到了跨域的问题,来记录下方法 首页服务端的框架是通过express-generator 搭建起来的 npm install -g express-generator 具体接下来的 ...
- react脚手架配置代理解决跨域问题
一.问题描述: 控制台报错,出现跨域问题 二.解决方案 配置代理: 第一种配置方式: 在package.json中追加如下配置 "proxy":"http://local ...
- axios 跨域传参_在Vue中如何使用axios跨域访问数据
vue.js学习之 跨域请求***与axios传参 一:跨域请求*** 1:打开config/index.jsmodule.exports{ dev: { } } 在这里面找到proxyTable{} ...
- axios get怎么还会显示跨域_在Vue中如何使用axios跨域访问数据
最近在项目中需要用到axios,所以就恶补一下这个axios到底是什么东东.越来它是vue-resource的替代品,官网也说了,以后都用axios, vue-resource不在维护.那么这个axi ...
最新文章
- linux挂载卸载不掉 umount target is busy
- 数据结构乐智教学百度云_网易云课堂 - 我的职业课堂
- 联想拯救者开机自动修复_设计师群体的创作利器,联想拯救者Y9000X 2021图赏
- 求1/2+1/4+...+1/n
- 区块链,供应链金融的新机遇
- Angular 2与TypeScript概览
- 三星突然发布Galaxy S10 Lite和Note 10 Lite:有不同也有所同
- python numpy安装
- 运维工程师主要工作是做什么?
- 渗透测试-Kali Linux 正确清理垃圾的姿势
- 微分方程模型_MIT—微分方程笔记03 一阶线性常微分方程解法
- C语言常见缩写和英文
- html无法访问页面,为什么网页无法访问?
- P1757 通天之分组背包
- STM32和ESP32- 主讲esp
- 3分钟带你彻底弄懂数码管的段选与位选
- 原子核的奥秘:核力的发现
- Windows live Writer 发布博文
- 骑士精神(双向深搜+meet in the middle)
- Oracle 漏洞修复方案