javascript - 登录时,Axios 未在 app.js 中设置默认标头
问题描述
我遇到的问题是在尝试发出 POST 请求时,我不断收到“未经身份验证”错误。这个问题是因为api_token
没有通过。如果我使用 PostMan 提出这个请求,它就可以工作。
在里面app.js
我做了 aconsole.log(axios.defaults.headers.common)
并且返回了X-CSRF-Token
&Authorization Bearer xxxx
令牌。
虽然,就axios
在网站上调用之前(提交之后),我添加了另一个console.log(axios.defaults.headers.common)
,唯一返回的是Accept: 'application/json, text/plain, */*'
它解释了为什么会出现“未经身份验证”错误,虽然我不知道为什么它是正确的,app.js
但之后没有任何东西通过事实。注意:我没有在我的组件中重新导入 axios。
在我的app.js
文件中,我为 axios 预设了标题:
window.axios = require('axios')
let token = document.head.querySelector('meta[name="csrf-token"]');
if (token) {
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
}
let api_token = document.head.querySelector('meta[name="api-token"]');
if (api_token) {
console.log('api_token.content',api_token.content )
// THIS ABOVE RETURNS DATA CORRECTLY.
window.axios.defaults.headers.common['Authorization'] = 'Bearer ' + api_token.content;
}
网站 - 提交后的组件:
async submitForm () {
console.log('window.axios.default.headers.common', axios.defaults.headers.common)
// THIS ABOVE ^^ RETURNS EMPTY HEADERS
const res = await axios.post('/api/product/add/validate', this.form)
}
解决方案
推荐阅读
- java - Liberty Web 应用程序 ViewExpiredException - 找不到视图标识符的已保存视图状态
- java - 自定义滚动视图在引用 xml 文件行时因错误膨胀类而崩溃
- reactjs - 节点快速会话反应:服务器cookie未发送到客户端
- google-chrome - “内容下载”在 Chrome 中非常慢,而不是在隐身或其他浏览器中
- wordpress - Wordpress 已注销 Newsletter2Go 小部件中没有任何内容
- listview - QML ListView 委托中的“索引”来自哪里?
- r - ggplot2:在散点图上绘制非标准形状
- javascript - 将 FontAwesome (html) 作为 JQuery var/verb 传递
- r - 在 Rstudio 中使用“str_extract_all”函数(stringr)后未显示 Unicode 字符
- api - DOM 无法在 Vuejs 中呈现属性更改