axios设置token到请求头
2019-03-27 19:27
543 查看
版权声明:Dream_Lees Blog未经本人允许,不得转载 https://blog.csdn.net/qq_41846861/article/details/88853217
三、总结
文章目录
一、为什么要设置请求头到token?
- 当输入用户名及密码,登录成功后,后台会返回一个token,在之后发送的请求都要带上这个token,因为后台设置了拦截,如果token一致,则允许访问,否则请求不成功。
二、用法
- 加一个http request拦截器
- 通过
window.localStorage.getItem("accessToken")
来获取token的value - 通过
config.headers.accessToken = token;
将token放到请求头发送给服务器,放在请求头中// http request拦截器 添加一个请求拦截器 axios.interceptors.request.use(function (config) { // Do something before request is sent //window.localStorage.getItem("accessToken") 获取token的value let token = window.localStorage.getItem("accessToken") if (token) { //将token放到请求头发送给服务器,将tokenkey放在请求头中 config.headers.accessToken = token; //也可以这种写法 // config.headers['accessToken'] = Token; return config; } }, function (error) { // Do something with request error return Promise.reject(error); });
- 整体代码:
import axios from 'axios' import {Modal} from 'antd' // http request拦截器 添加一个请求拦截器 axios.interceptors.request.use(function (config) { // Do something before request is sent let token = window.localStorage.getItem("accessToken") if (token) { config.headers.accessToken = token; //将token放到请求头发送给服务器 return config; //这里经常搭配token使用,将token值配置到tokenkey中,将tokenkey放在请求头中 // config.headers['accessToken'] = Token; } }, function (error) { // Do something with request error return Promise.reject(error); }); // // 添加一个响应拦截器 // axios.interceptors.response.use(function (response) { // // Do something with response data // return response; // }, function (error) { // // Do something with response error // return Promise.reject(error); // }); //是我封装的axios.post请求方式 const baseApi = 'http://192.1.1.164:8080' export default class Axios { static ajax_post(url, params ) { return new Promise((resolve, reject) => { const URL = baseApi + url return axios.post(URL, params ).then(response => { resolve(response); return response.data }).catch(error => { reject(error); // 异常处理 }) }) } }
显示
成功如下图:
三、总结
- 网上很多方法,很多方法不可用,还是官网的方法比较靠谱。
- 推荐几个写的不错的参考链接:
https://www.cnblogs.com/yeqrblog/p/9850811.html
https://blog.csdn.net/qq_35430000/article/details/80108897
- 总之,就是记住这两个方法就好了,axios 全局拦截器 (响应和请求)
// 添加一个请求拦截器 axios.interceptors.request.use(function (config) { // 在发送请求之前做些什么 return config; }, function (error) { // 对请求错误做些什么 return Promise.reject(error); }); // 添加响应拦截器 axios.interceptors.response.use(function (response) { // 对响应数据做点什么 return response; }, function (error) { // 对响应错误做点什么 return Promise.reject(error); });
- 最后,一定要搞清思路,慢慢来。
相关文章推荐
- axios全局注册,设置token,以及全局设置url请求网段的方法
- 4000 axios全局请求参数设置,请求及返回拦截器
- Anguar 使用interceptor拦截器设置请求头传入jwt token
- axios设置请求头内容
- Vue-axios 设置请求头问题
- Vue: axios 请求封装及设置默认域名前缀 (for Vue 2.0)
- axios全局请求参数设置,请求及返回拦截器的方法
- axios异步请求如何设置通过django的csrf验证
- vue2.0设置proxyTable使用axios进行跨域请求的方法
- axios设置请求头无效,采用axios请求拦截实现
- axios 设置拦截器 全局设置带默认参数(发送 token 等)
- 详解Vue-axios 设置请求头问题
- axios 后台管理项目 - token刷新,拦截器设置
- Charles Https 请求设置(Mac)
- 设置跨域请求头
- HttpURLConnection.setRequestProperty设置请求头
- HTTP代理实现请求报文的拦截与篡改8--自动设置及取消代理
- Jboss与jetty的URLencoding设置(Get请求乱码)
- HTTP代理实现请求报文的拦截与篡改8补--自动设置与取消ADSL拔号连接的代理
- IIS7.5 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面