vue 中如何所有请求都加上某个特定参数

假如我在vuex中定义了一个变量,然后在项目中的任意请求的都带上这个变量,有点像拦截器那样的,但是我不知道应该加在哪里。。。有没有大神指导下给个例子看下,用的是vue-resouce

阅读 10.5k
6 个回答
  1. vue-resouce比较陌生。
  2. Vuex能直接Vuex.val取state的值么,没这么取过,如果可以的话你可以试试下面的代码
下边代码添加在main.js中
import store from './store'
Vue.http.interceptors.push((request, next) => {
  // 在请求之前可以进行一些预处理和配置
  // 请求数据可能是data也可能在别的键上,你可以吧request输出一下看看
  // 直接添加参数,如果data是已经JSON.stringify序列化之后的,那你就得多处理几步了
  // request.data.key = store.key 
  next((response) => {
   return response;
  });
});

Vue 官方都推荐用 Axios 替代 vue-resource 了。

Axios 拥有 request 拦截器response 拦截器,能够很容易实现题主的需求,可以看看这里的中文说明。

这个需求可以用cookie解决的

vue-resource 的 before()钩子应该能满足你的需要,你可以在请求发送之前修改请求的header值。这样后台就能捕获了。

Callback function to modify the request options before it is sent

参考官网内容:
https://github.com/pagekit/vu...

vue-resource有没有拦截器已经不记得了,也不愿意去翻文档,推荐还是用axios吧,官方都推荐的,你想想看!值得一提的是,axios的用法和vue-resource很像,如果你会用vue-resource,那你跟着axios的文档肯定也会很轻易地上手!

推荐问题
宣传栏