首页 > 解决方案 > 如何获取完整的标题内容。postman 和 axios 的区别

问题描述

我尝试使用 axios 获取 X-Auth-Token。邮递员返回给我这个:邮递员标题

import axios from 'axios';
import qs from 'qs';

const API_URL="http://localhost:8080/api/1.0";

class DataService {
  login() {
    const data = {
      'login': 'xxxxx';
      'password': 'yyyyy';
    };
    const options = {
      "async": true,
      "crossDomain": true,
      method: 'POST',
      headers: {
        'Content-Type': "application/x-www-form-urlencoded"
      },
      data: qs.stringify(data),
      url: `${API_URL}/login`,
    };
    return axios(options);
  }
}

export default new DataService();

上面的脚本返回: 控制台输出

我想知道为什么 axios 不给我返回和 Postman 一样的内容?它取决于CORS吗?

标签: javascriptvue.jsaxiospostman

解决方案


对于 CORS 请求,浏览器默认只能访问以下响应头:

  • 缓存控制
  • 内容-语言
  • 内容类型
  • 过期
  • 最后修改
  • 编译指示

如果您希望您的客户端应用程序能够访问其他标头,则需要在服务器上设置Access-Control-Expose-Headers标头:

Access-Control-Expose-Headers: Access-Token, Uid

在nodejs中

...
const cors = require('cors');

const corsOptions = {
  exposedHeaders: 'Authorization',
};

app.use(cors(corsOptions));
...

如果您以以下方式发送响应
res.header('Authorization', "Bearer ${token}").send();


推荐阅读