vue项目中axios跨域设置
最近项目中遇到一个问题,测试环境和线上环境需要调同一个接口(接口地址是线上的),本地开发的时候遇到了跨域的问题,刚开始用了fetch解决的,代码如下
方法一
step1:安装包node-fetch,然后再在vue文件script下面引入以下代码
return fetch('http://m.didimessage.com/api/shorturl/api/shorturl/generate',{
method:'post',
body: JSON.stringify(params),
headers: {
"Cross-Method":'CORS',
'Content-Type':'application/json',
},
}).then(res=>{
console.log('fetch-res',res);
return res.json();
}).then(data=>{
console.log('fetch-data',data);
if (data.code != "200") {
this.$notify({
title: "",
message: "res.msg",
type: "error",
});
return;
}
console.log('shortUrl',data.data.shortUrl);
window.location =data.data.shortUrl;
}).catch(err=>console.log('err',err))
但是遇到一个问题,在ie中打开的时候,ie不支持fetch,所以页面显示空白
所以只能在项目里在axios基础上设置跨域
方法二
step1: 在main.js里面写入以内代码
import Axios from 'axios'
Vue.prototype.$http = Axios
step2: 在项目的vue.config.js文件中插入以下代码(vuecli3构建的项目默认没有此文件,可以手动创建此文件,与src在同一级目录)
module.exports = {
devServer: {
// host:"0.0.0.0",
proxy: {
'^/api': {
target: process.env.VUE_APP_HOST,
ws: true,
changeOrigin: true,
},
'/generate':{ //此处为设置跨域的配置,此处的generate可以随意命名,只要在vue文件调用接口时,对应的url地址以‘generate’开头,即可
target: 'https://m.didimessage.com',//你要请求的第三方接口前缀
changeOrigin: true, //开启代理:在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
pathRewrite: { // 这里重写路径运行后就代理到对应地址
'^/generate': '/' //意思是 把 '/generate' 替换成 '/'
}
}
}
}
}
//我们想要访问的接口地址
//是'https://m.didimessage.com/api/shorturl/api/shorturl/generate'
//所以我们vue里请求的地址只需要在请求的url前面加一个'/generate'
//即 let url = 'generate/api/shorturl/api/shorturl/generate'
step3:在vue文件中,调用接口
let _url = 'generate/api/shorturl/api/shorturl/generate';
this.$http.post(_url,params).then(data=>{
console.log('fetch-data',data); if (data.status != "200") {
this.$notify({
title: "",
message: "res.msg",
type: "error",
});
return;
}
console.log('shortUrl',data.data.data.shortUrl);
window.location =data.data.data.shortUrl;
}).catch(err=>console.log('err',err))
vue项目中axios跨域设置的更多相关文章
- 关于vue项目中axios跨域的解决方法(开发环境)
1.在config文件中修改index.js proxyTable: { "/api":{ target: 'https://www.baidu.com/muc/',//你需要跨域 ...
- 【原创】Vue.js 中 axios 跨域访问错误
1.假如访问的接口地址为 http://www.test.com/apis/index.php (php api 接口) 2.而开发地址为http://127.0.0.1:8080,当axios发起 ...
- vue项目中解决跨域问题axios和
项目如果是用脚手架搭建的(vue cli)项目配置文件里有个proxyTable proxyTable是vue-cli搭建webpack脚手架中的一个微型代理服务器,配置如下 配置和安装axios 安 ...
- vue项目中的跨域源请求拦截问题CORS头缺少'Access-Control-Allow-Origin'
这里使用的是axios发请求出现的. 访问的api接口是: 在不同域之间访问是比较常见,在本地调试访问远程服务器....这就是有域问题. VUE解决通过proxyTable 解决办法: 1.检查请求方 ...
- Vue+webpack项目中实现跨域的http请求
目前Vue项目中对json数据的请求一般使用两个插件vue-resource和axios, 但vue-resource已经不再维护, 而axios是官方推荐的且npm下载量已经170多万,github ...
- 前端vue开发中的跨域问题解决,以及nginx上线部署。(vue devServer与nginx)
前言 最近做的一个项目中使用了vue+springboot的前后端分离模式 在前端开发的的时候,使用vue cli3的devServer来解决跨域问题 上线部署则是用的nginx反向代理至后台服务所开 ...
- Vue项目多域名跨域
在Vue项目中请求后台数据时,遇到的多域名跨域问题. 直接上代码: assetsSubDirectory: "static", assetsPublicPath: "/& ...
- axios,vue-echarts, async, vue 图表数据处理; axios 跨域代理; 异步同步请求接口;生命周期函数
1.vue-echarts 安装和组件引用 插件官网 https://github.com/ecomfe/vue-echarts 安装 npm install eacharts vue-echarts ...
- vue项目中 axios 和Vue-axios的关系
文章收集于:https://segmentfault.com/q/1010000010812113 在vue项目中,会经常看到如下代码: 今天看到有些项目是这样写的,就有点看不懂了. ----解 ...
- Vue 中 axios 跨域配置 (!!!配置完成需要重新运行,不然也不起作用)
当拿到一个网址如:https://music.163.com/store/api/categorypage/list 获取数据是出现如下: 证明该网址不能非常直观的拿到数据.接下来我们试试跨域拿这个 ...
随机推荐
- VMware Workstation Ubuntu 20.04 LTS无法连接网络问题
本文记录了自己使用的安装在VMware Workstation上的Ubuntu20.04无法连接到网络的解决过程--终于解决困扰我两个小时的问题 出现问题# 毫无征兆,平时使用正常的Ubuntu在今天 ...
- 18.SQLite应用案例-课程表
一.程序界面 1.课程表首页 一周有7天,一天有10节课. 课程表首页的布局activity_main.xml框架设计大致如此: 最外层使用线性布局设置屏幕水平方向android:orientatio ...
- 尚硅谷大数据技术之Kettle软件介绍与使用方法
ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种ETL工具的使用,必不可 ...
- const char* str和const char str[]的区别
首先,字符串常量是存储在flash中的.假设字符串常量在flash中的地址是0x8003fb8. 第一种方式,str等价于str的内存单元的地址,str的内存单元存储着字符串常量的地址 第二种方式,s ...
- webpack4从0开始构建前端单页项目(15)用clean-webpack-plugin清理构建前的目录(dist)
clean-webpack-plugin 这个插件用来清空打包后的 dist 目录下的文件.可以避免每次打包前手动删除构建目录(dist)下的文件. 安装 clean-webpack-plugin c ...
- paddle 错误(ValueError: all input arrays must have the same shape)
参考:voc数据集执行eval.py命令报错 · Issue #3456 · PaddlePaddle/PaddleDetection (github.com) 配置文件加这两行: EvalReade ...
- 读取数组树下的某值,并返回其父级下的任何值 vue
1 // 遍历树 获取对应 id的项中的值 2 queryTree(tree, value) { 3 let stark = []; 4 stark = stark.concat(tree); 5 w ...
- 算子groupByKey和reduceByKey的区别
groupByKey根据k对v进行分组,如果要实现wordCount,需要再使用一个聚合算子,例如mapValues reduceByKey有聚合功能,最重要的是在shuffle过程之前可以对分区内相 ...
- python的惊艳之举--源于一个同事分享16种字符串反转方式
日期:2018/12/19 最近刚学习了Python的入门课程,准备寻找你的进阶门路,偶尔得到一个老同事微信分享,标题让我这种greenhand心砰砰砰... 好了,看标题: 面试官让用 5 种 py ...
- unity Android 可后台替换图片
using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; usin ...