问题描述
我目前在做一个框架,就是前后端分离,需要把一些数据放到响应头中,但是,前端获取不到响应头的其他信息,只能获取到。通过xhr.getAllResponseHeaders()只能获取这个值:content-type: application/json;charset=UTF-8
问题出现的环境背景及自己尝试过哪些方法
通过查找csdn网站,博客园等,都没有找到相应的解决方案。
相关代码
//获取请求头信息
getHeaders: function () {
$.ajax({
'type': 'head',
'url': constant.server_path + "/index",
'success': function (data, status, xhr) {
var header = {
//登录用户名
"name": xhr.getResponseHeader('name'),
// 登录session
"session": xhr.getResponseHeader('session'),
// 用户编号
"userId": xhr.getResponseHeader('userId'),
};
console.log("name:" + header.name + ",session:" + header.session + ",userId:" + header.userId);
console.log(xhr.getAllResponseHeaders())
},
'error': function (data, status, xhr) {
}
})
},
后端服务器相应结果如图所示:
你期待的结果是什么?实际看到的错误信息又是什么?
响应是有值的,但是获取不到这个值。我希望能拿到响应头信息的值。
1,不要用$.ajax了,自己在原生xhr上封装下,很简单的
2,$.ajax已经这么多年了,还没有任何改变了,还在吃老本,已经不适合当下的前后端分离中的xhr请求了,因为除了200,之外的http状态码操作都做不了,太鸡肋了,http状态可不止200一个,还有其他很多的
3,所以有这个时间,你完全可以封装一下xhr来用,然后根据你们的业务慢慢来升级它