1、axios 请求携带Cookie 方法:
withCredentials: true
eg:
2、ajax 携带方法:
$.ajax({
url: Domain + '/sysback/purchase/purchasedemand/getNowLoginOrgId',
dataType: "json",
method: "POST",
xhrFields: { //携带Cookie
withCredentials: true
},
crossDomain: true,
success: function (ret) {
}
})
3、导出时使用post导出,携带Cookie
//导出
exportRecord: function(){
var Domain = this.$http.defaults.baseURL
let that = this
that.$confirm('确认导出?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(function () {
that.loading = true;
var paramData = that.query; //导出需要的传参
var xhr = new XMLHttpRequest();
var url = Domain + '/maintain/maintain/serviceHandle/downloadService';
xhr.open('POST', url, true);
xhr.withCredentials = true; //携带Cookie
// 设置请求头参数,可以添加token值
xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
// 设置响应体返回类型,这里需要把返回的文件流转换成 blob 类型
xhr.responseType = 'blob';
xhr.onload = function (e) {
if (this.status == 200) {
that.loading = false;
// 这里从 响应头里面取出 文件名称,根据实际情况操作
var name = xhr.getResponseHeader('Content-disposition');
name = decodeURIComponent(name);
// 这里对文件名进行操作,是根据实际情况操作的
var fileName = name.substring(20, name.length);
// 返回的文件流,转换成blob对象
var blob = new Blob([xhr.response]);
// 转换成blob类型的url
var blobUrl = URL.createObjectURL(blob);
// 模拟 a 标签进行下载
var eLink = document.createElement('a');
// 设置 a 标签的展示方式,默认 display:none
eLink.style.display = 'none';
// 设置 a 标签的 url
eLink.href = blobUrl;
// 设置 下载文件的文件名称
eLink.download = fileName;
document.body.appendChild(eLink);
eLink.click();
document.body.removeChild(eLink);
}
};
xhr.send(JSON.stringify(paramData));
}).catch(function (error) {
console.log(error)
that.$message({
type: "info",
message: "已取消导出"
});
});
},