vue 文件 http配置 跨域问题 俱全
时间:2019-11-27
本文章向大家介绍vue 文件 http配置 跨域问题 俱全,主要包括vue 文件 http配置 跨域问题 俱全使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
/** * http配置 */ import axios from 'axios' import qs from 'qs' import store from '../store/index' import router from '../router/index' import {getStore} from 'src/config/cache' const instance = axios.create(); // axios 配置 //网络连接失败(连接不上)的时候,延迟5s报错吗 instance.defaults.timeout = 120000; console.log(process.env.NODE_ENV); if (process.env.NODE_ENV === 'production') { //配置生产接口域名 instance.baseURL = "http://bt-lzxkm.yunzhenshi.com.cn/lzxk/" // // instance.baseURL = "http://192.168.14.32:8082/lzxk/" // 这里不加 http:// 会有问题 会拼接 192.168.14.32:8082 } else { //配置开发接口域名 instance.baseURL = "http://192.168.18.135:8080/" // // instance.baseURL="http://192.168.18.146:8080/" // // instance.baseURL="http://192.168.18.142:8080/" // } axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8' //把 token 放在请求的头部。 axios.interceptors.request.use = instance.interceptors.request.use instance.interceptors.request.use( config => { //在请求拦截器中配置公共参数 sessionId //const sessionId = "9999"; // 如果是post请求就把默认参数拼到data里面 // 如果是get请求就拼到params里面 let accountNum = ''; if (getStore('accountNum')) { accountNum = getStore('accountNum'); } let accountName = ''; if (getStore('accountName')) { accountName = getStore('accountName'); } if (config.method === 'post') { let data = qs.parse(config.data); config.data = qs.stringify({ accountNum: accountNum, accountName: accountName, ...data }); } else if (config.method === 'get') { config.params = { accountNum: accountNum, ...config.params } } return config }, err => { return Promise.reject(err) }, ) // http response 拦截器 instance.interceptors.response.use( response => { if (response.data.code == 12105){ console.log("返回过期错误码:"+response.data.code); alert("登录过期,请重新登录"); router.currentRoute.path !== 'login' && router.replace({ path: 'login', query: {redirect: router.currentRoute.path}, }); return Promise.reject(response.data); } else if (response.data.code && response.data.code != 1) { alert(response.data.msg); return Promise.reject(response.data); } else { return response } }, error => { console.log(error); if (error.response) { switch (error.response.status) { case 401: // 401 清除token信息并跳转到登录页面 store.commit(types.LOGOUT) // 只有在当前路由不是登录页面才跳转 router.currentRoute.path !== 'login' && router.replace({ path: 'login', query: {redirect: router.currentRoute.path}, }) } } return Promise.reject(error); // return Promise.reject(error.response.data) }, ) export default instance
原文地址:https://www.cnblogs.com/xiaozhu-zhu/p/11945053.html
- 第二届游戏运营技术论坛——云时代的游戏运营之道
- 如何才能准确测量 APP 的功耗?
- 可用性更高:设计优秀的MySQL和Percona XtraDB集群
- 如何使用scikit-learn在Python中生成测试数据集
- OpenStack Neutron之持续测试
- 干货丨 用 Python 进行股票分析
- 小故事:架构师需要做什么?
- 浅谈用Python计算文本BLEU分数
- Fourinone如何实现并行计算和数据库引擎
- 在Python中用一个长短期记忆网络来演示记忆
- CDA数据分析师学习之路第3期 | Spark RDD的转换操作举例
- 通过Temboo实现从Arduino获取雅虎天气信息
- 自动化模式中的MySQL
- 通过Pandas实现快速别致的数据分析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法