请求头xhr.setRequestHeader 设置发送给服务器一个cookie,在服务端修改后,在通过响应头自定义内容写入后返回。
此过程需要注意的是,这个发送cookie是以URI编码形式发送,所以要转码之后发送。
xhr.setRequestHeader("Set-Cookie","niuniu")
这样服务器通过req.headers方法得到一个对象也就会收到这个请求头里的这一项,是一个数组类型

具体步骤:
var str = encodeURIComponent("niuniu牛")niuniu%E7%89%9Bxhr.setRequestHeader("Set-Cookie",str) req.headers获取整个请求头的内容'set-cookie': [ 'niuniu%E7%89%9B' ]var str = decodeURIComponent(req.headers["set-cookie"]);Set-Cookie,可以通过自定义来实现;"X-Set-Cookie": encodeURIComponent(str+"=阿牛"),
"Access-Control-Expose-Headers": ["X-Set-Cookie"]
xhr.getResponseHeader("x-set-cookie")是个URL码console.log(decodeURIComponent(xhr.getResponseHeader("x-set-cookie")));niuniu牛=阿牛var stry = decodeURIComponent(xhr.getResponseHeader("x-set-cookie"));
document.cookie = stry;


英文可以通过:二进制流数 ArrayBuffer来加密
var str = "ilove you";

/*客户端*/
//Uint8Array
var arr = str.split("").map(item=>item.charCodeAt(0)^255);
arr = new Uint8Array(arr)
xhr.send(arr);
/*服务器*/
data = ''
req.on("data", (_chunk) => {
for(var i=0;i<_chunk.length;i++){
data += String.fromCharCode(Number(_chunk[i])^255)
}
});
汉字加密服务端
function getData(req) {
return new Promise(function (resolve, reject) {
data = ''
req.on("data", (_chunk) => {
console.log(_chunk);
for(var i=0;i<_chunk.length;i+=2){
//16进制四个字节,字节倒序,前置补零
var str="0x"+ _chunk[i+1].toString(16).padStart(2,0)+_chunk[i].toString(16).padStart(2,0);
var num=parseInt(str,16)^0xFFFF;
data+=String.fromCharCode(num);
}
});
req.on("end", () => {
resolve(data)
})
})
}
汉字加密客户端Uint16Array
var str="我 爱 你"
var arr= str.split("").map(item=>item.charCodeAt(0)^0xFFFF);
arr=new Uint16Array(arr)
xhr.send(arr);
Blob 大二进制流数据
字符串
文档(HTML ,XML)
FormData