vue-resource 在请求头(headers)加上token

前言vue

  有这样的一个需求,后台服务器要求把token放在请求头里面跨域

  嗯通常是经过data里面经过参数带过去的服务器

第一种方法cookie

  全局改变:app

  Vue.http.headers.common['token'] = store.state.token;
  以前是吧token刚在data里面的
  是我封装的一个get 请求,亲测有用。如今咱们项目就是用的这一种

      

  而后放一个请求成功的实例post

  首先会先发一个 OPTIONS 预请求spa

  

  而后发出正式请求code

  

 

第二种方法:blog

  不能局限于一种方法嘛!token

  第二种方法是:在Vue实例中设置

var vm = new Vue({
  el:'#app',
  data:{
   showList: true,
   title: null
  },
  http: {
    root: '/',
    headers: {
      token: token
    }
  }
})

 

第三种方法:在拦截器中设置  vue interceptors 设置请求头

Vue.http.interceptors.push((request, next) => {
    request.headers.set('token', token); //setting request.headers
    next((response) => {
      return response
   })
})

 

还能够这样

  在在main.js添加过滤器

Vue.http.interceptors.push((request,next)=>{
 //request.credentials = true; // 接口每次请求会跨域携带cookie
 //request.method= 'POST'; // 请求方式(get,post)
 //request.headers.set('token','111') // 请求headers携带参数
 
 next(function(response){
  return response;
 
 });
})

 

Fannie总结

  后面的方法要本身去实践哦,我用的是第一种。

  而后再次提醒一下,大家自家的服务器要支持这样传token哦~

  否则会报个错的,像下面这样

Request header field token is not allowed by Access-Control-Allow-Headers in preflight response.

   拜拜了。

相关文章
相关标签/搜索