javascript - 如何获取完整的标题内容。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吗?
解决方案
对于 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();
推荐阅读
- php - 为什么在清理 URL 时删除了一些波斯语字符?
- c# - 如何在 .Net Core 中使用 ServiceExtensions?
- java - Java数据输出“日期”和“月份”
- r - 如何检查日期是否在 R 的区间列表内?
- javascript - 检查一个数组中的元素是否存在于另一个数组中
- html - 协助创建简单的导航栏。
- android - Android studio kotlin 文件显示为来自不同包和 XML 文件的 R 类
- javascript - 包含“this”关键字的方法在另一个方法中调用与分配给局部变量时的工作方式不同
- dart - 遗传算法在 Dart/Flutter 中吐出奇怪的结果
- c# - F# 按多个值分组并聚合