文件下载,token校验
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test a</title> </head> <body> <button onclick="test()">导出测试</button> </body> <script> function test(){ var xhr = new XMLHttpRequest(); xhr.open('get','http://www.enterprise.com/api/v1/staff/staff-export'); xhr.setRequestHeader('Authorization','Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vZW50ZXJwcmlzZS50ZXN0LmNuc29kYXRhLmNvbS9hcGkvdjEvbG9naW4iLCJpYXQiOjE2NzgyNjI0OTksImV4cCI6MTY3ODg2NzI5OSwibmJmIjoxNjc4MjYyNDk5LCJqdGkiOiI3NDE0UTBhR0ZWOVBHWUd0Iiwic3ViIjoiMSIsInBydiI6IjM2ZWRhNWYzNGQzOWNhMmViZjQ4ZGFlNDBhNjM0NWY1ZWU1MWI4YmUifQ.i0l-ZH-M7U5KwGViJ1gqrQhMkcWpv7ZHZXQXG7neqRI'); xhr.send(); xhr.responseType='blob' xhr.onload = function (e) { //如果请求执行成功 if (this.status == 200) { var blob = this.response; var filename = "test.xlsx"; var a = document.createElement('a'); var url = URL.createObjectURL(blob); a.href = url; a.download = filename; a.click(); window.URL.revokeObjectURL(url); } } } </script> </html>
使用XMLHttpRequest发送post请求(有请求体)
由于post请求要带请求体,请求体有三种格式,为了方便服务器接收数据,当提交请求时,需要指定一个叫做Content-Type的请求头
请求体格式:
参数=值&参数=值
代码示例:
const data = {
name: 'xxx',
age: xx,
...
}
// 创建一个XMLHttpRequest对象
let xhr = new XMLHttpRequest()
// 设置请求方式和请求地址
xhr.open('POST', 'http://XXXX')
// 创建一个URLSearchParams对象吧data数据转换成 参数=值&参数=值格式
const usp = new URLSearchParams(data)
const query = usp.toString()
// 设置对应的content-type
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded')
// 发送请求
xhr.send(query)
// 监听load 响应请求获取响应结果
xhr.addEventListener('load', function () {
console.log(this.response)
原文链接:https://blog.csdn.net/weixin_53312997/article/details/125547811

浙公网安备 33010602011771号