我的应用程序中有很多帖子请求.他们中的一些人必须有一个额外的标题和token我不知道如何附加它

到目前为止,我的代码是这样的.我正在判断是否有令牌,并在将其附加到头中时,然后使用vue资源post方法发出post请求.

let headers = new Headers({'Content-Type': 'application/json;charset=utf-8'});

 if(token !== '') {
    headers.append('TOKEN', token);
  }

  return this.http.post(uri, data, headers)
         .then(this.extractData)
         .catch(this.handleError);

但这并不是附加TOKEN

这有什么用

this.http.interceptors.push(function(request) {
                request.headers.set('TOKEN', token);
            });

headers.append('TOKEN', token);岁的地方

但出于某种原因,它推送TOKEN个报头不是针对某些请求,而是针对所有请求

所以,当我用token发出请求时,它工作得很好,之后我发出了没有token的请求,但它仍然添加了token.

有人知道解决这个问题的最佳方法是什么吗?

UPD如果我在做headers.append('TOKEN', token);时 Select console.log(headers.get('TOKEN')),它会给出正确的值.所以我猜post请求本身被错误的标题调用.

推荐答案

document中,headers应该是普通的Javascript对象,而不是window.Headers

请试一试

  let headers = {
    'Content-Type': 'application/json;charset=utf-8'
  };

  if(token !== '') {
    headers['TOKEN'] = token
  }

  return this.http.post(uri, data, {headers})
         .then(this.extractData)
         .catch(this.handleError);

Vue.js相关问答推荐

VITE:无法为VUE单文件组件加载URL

我可以手动访问 vue-router 解析器吗?

如何只提取一次用于无线电组过滤的数据,而不是针对数据库中的每个条目提取数据?

在 Nuxt3 中使用 Vue3 vue-ganntastic 插件

如何将模板传递给EJS菜单

Nuxt 2.15.7 的构建错误 - 无法解析 CSS @font-face URL

查找未销毁的 Vue 组件

如何对对象数组进行 v-model

为什么组件在 v-if 下没有被销毁

使用 aria-live 在 vue.js 中向屏幕阅读器宣布信息

为什么 v-model 不适用于数组和 v-for 循环?

Vuetify Jest 未知自定义元素

使用 nuxt,如何将路由名称放在页面标题中?

如何使用 JavaScript 按索引删除数组元素?

'vue' 未被识别为内部或外部命令

如何从组件内的单点捕获 vuejs 错误

构建 Vue.js 应用程序时 JavaScript 堆内存不足

如何在 Vue 数据对象中运行函数?

Vue - 重用方法的最佳方式

在~/components/AddPlaceModal.vue中找不到导出AddPlaceModal