[axios]如何查看axios设置的Authorization Header?

2024-02-21 993 views
1

我怎样才能看到 axios 实际发送的内容。我设置了授权标头,但看不到发送到服务器的内容。我检查了 FF 和 Chrome,但没有看到任何有关授权标头的信息。

我可以打印出来吗?

export const axiosInstance = axios.create({
  baseURL: getBaseUrl(),
  timeout: 5000,
  contentType: 'application/json',
  Authorization: 'Bearer 14154151'
});

"axios": "^0.18.0",

回答

5

您可以通过检查响应来查看发送的原始标头。这是使用响应拦截器的示例:

axiosInstance.interceptors.response.use(res => {
  console.log(res.request._header)
  return res;
}, error => Promise.reject(error));

但是,您的设置的问题在于您使用的Authorization好像它是 的配置选项axios,但事实并非如此。这是您需要设置的 HTTP 标头。同样的问题contentType。因此,您只需要稍微修改一下您的设置,如下所示:

export const axiosInstance = axios.create({
  baseURL: getBaseUrl(),
  timeout: 5000,
  headers: {
    Authorization: 'Bearer 14154151',
    'Content-Type': 'application/json'
  }
});

有关所有选项的列表,请参阅自述文件的请求配置部分。

9

@gcox

嗯,我更新了我的代码,但我仍然没有看到标题,我本以为这会根据要求完成。也许因为我现在收到 401 它没有执行标头代码?

8

@gcox

好的,我会尝试构建一些东西,但基本上它只是你拥有的代码,然后执行 post/get/delete/put

0

@chobo2 捕获错误,该错误将有一个请求属性,您可以从中获取原始标头。


const axios = require('axios')

const getBaseUrl = () => {
  return "http://google.com"
}

const axiosInstance = axios.create({
  baseURL: getBaseUrl(),
  timeout: 5000,
  headers: {
    Authorization: 'Bearer 14154151',
    'Content-Type': 'application/json'
  }
});

axiosInstance.get('test')
  .catch(err => {
    console.log(err.request._header)
  })

输出...

GET /test HTTP/1.1
Accept: application/json, text/plain, */*
Authorization: Bearer 14154151
Content-Type: application/json
User-Agent: axios/0.18.0
Host: google.com
Connection: close
9

@chobo2 你解决这个问题了吗?

6

@gcox

我解决了我试图解决的问题,但无法看到标题,但我从来没有时间尝试您发布的内容。希望这个周末我有时间尝试一下。