封装:

import axios from 'axios'
axios.defaults.baseURL="http://127.0.0.1:8000/"
axios.defaults.timeout = 1000000;
axios.defaults.headers.post['Content-Type'] = 'application/json';
axios.defaults.headers.put['Content-Type'] = 'application/json'; axios.interceptors.request.use(
config => {
// 每次发送请求之前判断是否存在token,如果存在,则统一在http请求的header都加上token,不用每次请求都手动添加了
const token = sessionStorage.getItem("jwt_token")
console.log(token)
if (token){
config.headers.Authorization = 'JWT '+ token
}
return config;
},
error => {
return Promise.error(error);
}) axios.interceptors.response.use(
// 请求成功
res => res.status === 200 ? Promise.resolve(res) : Promise.reject(res), // 请求失败
error => {
if (error.response) {
// 判断一下返回结果的status == 401? ==401跳转登录页面。 !=401passs
console.log(error.response)
if(error.response.status===401){
// 跳转不可以使用this.$router.push方法、
// this.$router.push({path:'/login'})
window.location.href="http://127.0.0.1:8080/#/login"
}else{
// errorHandle(response.status, response.data.message);
return Promise.reject(error.response);
}
// 请求已发出,但是不在2xx的范围
} else {
// 处理断网的情况
// eg:请求超时或断网时,更新state的network状态
// network状态在app.vue中控制着一个全局的断网提示组件的显示隐藏
// 关于断网组件中的刷新重新获取数据,会在断网组件中说明
// store.commit('changeNetwork', false);
return Promise.reject(error.response);
}
}); // 封装xiaos请求 封装axios里的get
export function axios_get(url,params){
return new Promise(
(resolve,reject)=>{
axios.get(url,{params:params})
.then(res=>{
console.log("封装信息的的res",res)
resolve(res.data)
}).catch(err=>{
reject(err.data)
})
}
)
} export function axios_post(url,data){
return new Promise(
(resolve,reject)=>{
console.log(data)
axios.post(url,JSON.stringify(data))
.then(res=>{
console.log("封装信息的的res",res)
resolve(res.data)
}).catch(err=>{
reject(err.data)
})
}
)
} export function axios_put(url,data){
return new Promise(
(resolve,reject)=>{
console.log(data)
axios.put(url,JSON.stringify(data))
.then(res=>{
console.log("封装信息的的res",res)
resolve(res.data)
}).catch(err=>{
reject(err.data)
})
}
)
} export function axios_delete(url,data){
return new Promise(
(resolve,reject)=>{
console.log(data)
axios.delete(url,{params:data})
.then(res=>{
console.log("封装信息的的res",res)
resolve(res.data)
}).catch(err=>{
reject(err.data)
})
}
)
}

http.js

导出使用:

import {axios_get,axios_post,axios_delete,axios_put} from './http.js'

export const jwt_send_get = p  => axios_get("/appjwt/index01/",p)

api.js

最新文章

  1. Lambert(朗伯)光照模型 和Half Lambert的区别
  2. js储存参数的数组arguments
  3. jQuery插件的开发之$.extend(),与$.fn.extend()
  4. EaseType缓动函数
  5. 多校6-Key Set 2015-08-09 20:35 2人阅读 评论(0) 收藏
  6. 金融系列14《QPBOC交易流程》
  7. MySQL5.6监控表之INNODB_METRICS
  8. 手动安装VS code 插件
  9. 在qt creator中使用imread并将图片显示到QLable中时没反应
  10. eclipse的这几个小玩意
  11. 【微服务】使用spring cloud搭建微服务框架,整理学习资料
  12. websphere 进程
  13. 03_java基础(八)之static关键字与代码块
  14. WZ后台管理框架
  15. 【Linux】循环控制及状态返回值break、continue、exit、return
  16. c++学习笔记—二叉树基本操作的实现
  17. Android density、dpi、dp、px
  18. Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象。
  19. 如何使用socket进行java网络编程(五)
  20. php array转化为utf-8编码以便于转化为json数据

热门文章

  1. npm--npm+gulp发布至私服,报错E503解决方案
  2. js 自适应手机电脑 轮播图
  3. 限制页面只能由微信内置浏览器打开,在其他浏览器打开跳转到Oauth2页面
  4. python_登陆验证文件上传下载_socket
  5. 有了Cloud Alert电话报警,再也不怕遗漏告警了
  6. 淘宝客?CPS技术是怎么实现的?
  7. 数据库Sharding的基本思想和切分策略(转)
  8. Gin的中间件和路由分组
  9. C# 9.0新特性详解系列之一:只初始化设置器(init only setter)
  10. Spring中@Translational注解失效场景